njs 0.7.7 已发布,njs 以 nginx 插件的方式存在,它是 JavaScript/ECMAscript 的子集,实现了大部分的 JavaScript 语言功能,没有完全遵从 ECMAScript 标准,同时抛弃了 JavaScript 比较难懂的部分。njs 不通过 V8 引擎实现,而是通过一个更小、能耗更低、更符合 nginx 应用场景的小虚拟机实现,可以理解成 nginx 为其实现了一套自己的词法解析。
作为 nginx 的插件,njs 的安装方式是重新编译 nginx。
新版本下载地址:http://nginx.org/en/docs/njs/install.html
主要变化
nginx modules:
-
Feature: 扩展了可以指定 js 指令的 nginx 配置上下文的数量
-
HTTP: js_import, js_path, js_set和js_var指令支持在
server
和location
上下文中使用。 js_content, js_body_filter 和 js_header_filter 指令支持在 if 上下文中使用 -
Stream: the js_import, js_path, js_set 和 js_var 支持在
server
上下文中使用
-
-
Feature: 添加
r.internal
属性 -
Bugfix: 修复在 Fetch API 中读取 response body 的问题
-
Bugfix: 修复 stream 中的 js_fetch_timeout 问题
-
Bugfix: 修复
0
fetch timeout 的 socket 泄露问题
Core:
-
Feature:扩展
fs
模块。添加fs.openSync()
,fs.promises.open()
,fs.fstatSync()
,fs.readSync()
,fs.writeSync()
FileHandle
实现了以下属性:fd
,read()
,stat()
,write()
,close()
-
Bugfix: 修复
parseInt()
,parseFloat()
,Symbol.for()
没有参数的问题
Changelog