Nodejs v env 文件、导入模块和权限模型

nodejs v env 文件、导入模块和权限模型

node.js v20.6 已发布,其中包含令人惊叹的新功能,这些新功能是 2023 年 10 月 24 日起 lts 版本的一部分。让我们拭目以待!

ini 配置文件

告别 dotenv 包,现在 node.js 可以从 .env 文件加载环境变量。

node --env-file path/to/.env index.js

? ini 文件的路径是必需的,因为 node.js 没有为 ini 文件选择默认名称。

? 如果 ini 文件不存在,则节点进程没有失败,只需在没有环境变量的情况下开始运行即可。

正在加载node_options

您可以使用 ini 配置文件加载 node.js 的特定环境变量(如 node_options),如下例所示:

node_no_warnings=1node_options="--experimental-permission --allow-fs-read=*"tz=pacific/honoluluuv_threadpool_size=5

可以用同样的方法使用:

node --env-file .env index.js

预加载 es 模块

使用 –import 标志在启动时预加载 es 模块,该模块将在任何应用程序代码运行之前加载,甚至是入口点。

node --import path/to/file.js index.js

此标志类似于众所周知的用于加载 commonjs 模块的 –require 标志。

? 使用 –require 预加载的模块将在使用 –import 预加载的模块之前运行。

权限模型

我们有一个新的机制来限制在执行 node.js 进程期间对特定资源的访问,称为权限模型。该 api 存在于标志 –experimental-permission 后面,启用该标志后,将限制对所有未明确允许的资源的访问。

文件系统权限

–allow-fs-read 标志允许使用 * 的所有 filesystemread 操作,或使用绝对路由到特定路径。

文心大模型 文心大模型

百度飞桨-文心大模型 ERNIE 3.0 文本理解与创作

文心大模型 56 查看详情 文心大模型

node --experimental-permission --allow-fs-read=* index.js

要仅允许访问特定路径,您应该使用绝对路径

node --experimental-permission --allow-fs-read=/path/to/index.js --allow-fs-read=/path/to/directory index.js

? 初始化模块也需要被允许。否则 node.js 进程本身无法加载 index.js 文件。

? 你可以使用 .允许访问工作目录,但不能使用它来指定文件的路径(例如 ./index.js)。

node --experimental-permission --allow-fs-read=. index.js

–allow-fs-write 标志允许使用 *.
访问特定路径或整个文件系统

node --experimental-permission --allow-fs-read=. --allow-fs-write=/tmp/ index.js

子进程

启用权限模型后,默认情况下进程将无法生成任何子进程,您应该使用 –allow-child-process 来允许此操作。让我们对index.js 使用以下代码。

const childprocess = require('node:child_process');childprocess.spawn('node', ['-e', 'require("fs").writefilesync("./new-file.txt", "hello, world!")']);

要在启用权限模型的情况下运行此代码片段,您应该使用以下命令执行index.js:

node --experimental-permission --allow-fs-read . --allow-child-process index.js

? 子进程默认不会继承权限模型,所以new-file.txt创建成功。

更多选择

如果你想在此权限模型下创建工作线程,可以勾选 –allow-worker 标志,并勾选 –allow-wasi 以允许创建 wasi 实例

结论

我们有很多新工具来为我们的应用程序加载环境变量,一种导入代码中所需的预加载 es 模块的方法,以及一个新的权限模型来提高我们系统的安全性。

请继续关注 node.js 的博客,这个团队正在每个版本中添加很棒的功能!我们在 v22.6.0 中提供了初始 typescript 支持和使用 devtools 的网络检查。

以上就是Nodejs v env 文件、导入模块和权限模型的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/464248.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月8日 04:48:41
下一篇 2025年11月8日 04:51:41

相关推荐

  • Node.js中的面向对象编程最佳实践

    Node.js 中的面向对象编程最佳实践 类和对象 类定义: class Person { constructor(name, age) { this.name = name; this.age = age; }} 对象创建: const person = new Person(‘John’, 30…

    2025年12月18日
    000
  • 哪个C++框架最适合特定的项目?

    在 c++++ 项目中选择合适框架的指南:确定项目需求(类型、功能、性能、代码重用)评估框架选项(boost、qt、wxwidgets、nan、opencv)选择满足项目需求的框架(根据实际情况,例如跨平台 gui 和图像处理功能) 在 C++ 项目中选择合适框架的指南 选择正确的 C++ 框架对于…

    2025年12月18日
    000
  • Google App Engine 模块化部署:突破单一代码库限制

    本文旨在澄清google app engine go模块是否必须共享同一代码库的常见误解。我们将深入探讨app engine模块化架构,阐明每个模块不仅可以拥有独立的运行时环境,还能维护各自的代码库。这极大地提升了应用设计的灵活性,允许开发者在同一应用中融合多种语言和技术栈,从而充分利用各语言的优势…

    2025年12月16日
    000
  • App Engine 模块:独立代码库与多运行时配置详解

    app engine 模块允许开发者为同一应用部署独立的 go 代码库,并支持配置不同的运行时环境。这一范式打破了传统上认为所有模块必须共享同一代码库的限制,极大地增强了应用的灵活性和可扩展性。通过为每个模块指定独立的配置文件和根目录,开发者可以构建微服务架构,充分利用不同语言的优势,从而优化应用性…

    2025年12月16日
    000
  • Google App Engine Go 模块:独立代码库与多运行时支持

    Google App Engine(GAE)的模块化设计允许开发者为每个服务(模块)使用独立的源代码库,并支持配置不同的运行时环境。这一特性打破了传统应用共享单一代码库的限制,极大地增强了应用的灵活性、可维护性,并使得在同一应用中集成多种编程语言和技术栈成为可能,从而优化了特定任务的执行效率。 Ap…

    2025年12月16日
    000
  • Debian下Swagger与Kubernetes如何集成

    在Debian操作系统中将Swagger与Kubernetes进行整合,可按照如下流程操作: Debian系统安装Swagger步骤 更新软件包列表并升级已安装的包: sudo apt update && sudo apt upgrade -y 安装Node.js和npm(若尚未安装…

    2025年12月15日
    000
  • Swagger在Debian环境中的性能如何

    OpenAPI规范(即原Swagger)在Debian系统下的运行效率受多种因素影响,包括服务器硬件配置、网络条件、UI与接口的实现方式以及系统的整体优化水平。以下内容将帮助你更好地了解并提升其在Debian平台上的表现: 安装与设置流程 在Debian平台上部署Swagger通常需要先安装Node…

    2025年12月15日
    000
  • Debian系统上Swagger文档如何更新

    在Debian操作系统中对Swagger文档进行更新,通常需要升级Swagger UI或Swagger Editor组件。以下是具体的操作流程: 升级Swagger UI 安装Swagger UI(若尚未完成安装): sudo apt update sudo apt install nodejs n…

    2025年12月15日
    000
  • Debian系统JS依赖如何管理

    本文介绍如何在Debian系统中高效管理JavaScript (JS) 依赖。主要方法是利用Node.js的包管理器npm或Yarn。 方法一:使用npm 安装Node.js和npm: 在终端执行以下命令安装: sudo apt updatesudo apt install nodejs 验证安装:…

    2025年12月15日
    000
  • 如何利用JS日志进行Debian故障排查

    在Debian系统中,JavaScript(JS)日志并非系统故障诊断的首选工具,因为JS主要用于前端Web开发。然而,对于基于Node.js的应用,JS日志能有效帮助定位问题。 以下步骤指导您如何利用JS日志排查Debian系统中Node.js应用的故障: 定位应用: 首先,找到您的Node.js…

    2025年12月15日
    000
  • 如何查看 Debian Node.js 日志

    本文介绍几种在 Debian 系统上查看 Node.js 日志的实用方法。 方法一:利用 systemd 的 journalctl 命令 如果你的 Node.js 应用由 systemd 管理,可以使用 journalctl 命令查看日志。 假设你的 Node.js 服务名称为 my-nodejs-…

    2025年12月15日
    000
  • Debian Node.js 日志中如何查看请求记录

    在 Debian 系统中查找 Node.js 应用的请求日志,需要根据运行环境的不同采取不同的方法: 1. 本地开发环境: 日志通常位于应用的工作目录下,通常是一个名为 logs 的文件夹,包含了应用的日志文件(例如 app.log)。你可以使用文本编辑器或命令行工具 cat 来查看: cat /p…

    2025年12月15日
    000
  • Python 环境如何与 Node.js 并存

    Python 和 Node.js 可在同一台机器上共存,因二者运行时和包管理独立。1. 分别从官方渠道安装 Python 和 Node.js,确保 PATH 正确;2. 使用 pyenv 和 nvm 管理多版本切换,互不干扰;3. 通过 venv 和 node_modules 隔离项目依赖,避免冲突…

    2025年12月14日
    000
  • Node.js版本升级后node-gyp构建错误及解决方案

    本文旨在解决node.js版本升级至20.9.0后,执行`npm install`时遇到的`node-gyp`构建错误,特别是涉及`fetcherror`导致无法下载node.js头文件的问题。文章将分析错误根源,并提供使用yarn作为有效替代方案,同时探讨其他通用的`node-gyp`故障排除策略…

    2025年12月14日
    000
  • Node.js 版本升级中 node-gyp 错误排查与 Yarn 解决方案

    在将 Node.js 版本升级至 20.9.0 等新版本时,开发者常遇到 `node-gyp` 编译原生模块的错误,尤其表现为 Python 环境配置不当或网络下载 Node.js 头文件失败。本文将深入分析这些错误的原因,提供 Python 和构建工具的排查方法,并重点介绍如何通过切换到 Yarn…

    2025年12月14日
    000
  • Node.js版本升级中Node-gyp错误解析与解决方案

    针对node.js版本升级(特别是node 20.9.0)过程中常见的node-gyp编译错误,本教程深入分析了其潜在原因,包括网络连接问题、tls证书验证失败以及python环境配置不当。文章重点推荐使用yarn作为解决依赖冲突和构建问题的有效策略,并提供了其他针对性排查和修复建议,旨在帮助开发者…

    2025年12月14日
    000
  • Stack Exchange API:轻松获取问题正文内容的教程

    本文详细介绍了如何使用Stack Exchange API高效地检索问题正文内容。针对API默认仅返回问题标题的常见困惑,教程阐明了通过在API请求中添加filter=’withbody’参数即可直接获取包含HTML格式的正文,无需进行额外的请求或复杂的解析。通过具体的Pyt…

    2025年12月14日 好文分享
    000
  • 解决Shaka Player编译时Node.js依赖路径缺失问题

    在编译Shaka Player时,用户可能遇到Node.js依赖缺失的错误,即使Node.js已正确安装。本文揭示了该问题通常并非Node.js本身的问题,而是项目目录路径过长或位于特殊位置(如下载文件夹)导致构建工具无法正确解析依赖。解决方案简单直接:将Shaka Player项目文件夹移动到一个…

    2025年12月14日
    000
  • 解决Shaka Player编译失败:Node.js依赖缺失与项目路径优化

    本教程旨在解决Shaka Player编译时遇到的Node.js依赖缺失错误。该问题常因项目目录位于用户特定路径(如Downloads)引起。核心解决方案是将Shaka Player项目移动到更简洁的根目录,从而规避潜在的权限或路径解析问题,确保编译过程顺利进行。 引言:Shaka Player编译…

    2025年12月14日
    000
  • 解决Shaka Player编译错误:Node.js依赖路径问题

    本教程旨在解决Shaka Player编译过程中常见的“Node.js依赖缺失”错误,即使Node.js已正确安装。该问题通常并非Node.js本身的问题,而是由Shaka Player项目文件夹位于过长、包含特殊字符或权限受限的路径(如Downloads文件夹)所导致。通过将项目移动到更简洁的根目…

    2025年12月14日
    000

发表回复

登录后才能评论
关注微信