9月21日总结

前言:欢迎来到 Node.js 20

Node.js 20 已经发布,带来了创新和激动人心的新时代。这个开创性的版本于2023年4月18日首次亮相,并将在2023年10月发布长期支持(LTS)版本,并且将持续支持至2026年4月,下面小编就为大家介绍一下Node.js20的几个新特性:

1.Node.js 权限访问

Node.js 20 正式推出了权限模型,这是 Rafael Gonzaga 提供的一项实验性功能,可以在程序运行时限制对特定资源的访问。

要使用这个强大的功能,只需启用 --experimental-permission 标志,例如:

node --experimental-permissions myApp.js

这将限制所有可用权限的访问,这样就可以确保应用程序远离任何不受欢迎的入侵者。

文件读写系统

要允许访问文件系统,请使用--allow-fs-read和 --allow-fs-write标志:

$ node --experimental-permission --allow-fs-read=* --allow-fs-write=* index.js
Hello world!
(node:19836) ExperimentalWarning: Permission is an experimental feature
(Use node --trace-warnings ... to show where the warning was created)

下面是具体指令的含义:

--allow-fs-read=*- 它将允许所有FileSystemRead操作。
--allow-fs-write=*- 它将允许所有FileSystemWrite操作。
--allow-fs-write=/tmp/- 它将允许FileSystemWrite访问该/tmp/ 文件夹。
--allow-fs-read=/tmp/,/home/.gitignore- 它允许FileSystemRead访问/tmp/文件夹和路径/home/.gitignore。

2.自定义 ESM 加载器钩子

Node.js 20通过加载器提供的自定义钩子

(--experimental-loader=./mr.mjs)在专用线程上运行,确保一切都保持井然有序。

以下是如何使用自定义加载器的快速示例:

loading.mjs

export async function resolve(specifier, parentModuleURL, defaultResolve) {
console.log("Resolving:", specifier);
return defaultResolve(specifier, parentModuleURL);
}

export async function load(url, defaul

posted @ 2023-09-21 12:57  lmyyyy  阅读(17)  评论(0)    收藏  举报