njs 0.4.0 已发布,新增了 js_import 指令,以及在 r.headersOut 中支持多值标头(multi-valued headers)。
njs 以 nginx 插件的方式存在,它是 JavaScript/ECMAscript 的子集,实现了大部分的 JavaScript 语言功能,没有完全遵从 ECMAScript 标准,同时抛弃了 JavaScript 比较难懂的部分。njs 不通过 V8 引擎实现,而是通过一个更小、能耗更低、更符合 nginx 应用场景的小虚拟机实现的,可以理解为 nginx 为其实现了一套自己的词法解析。
作为 nginx 的插件,njs 的安装方式是重新编译 nginx。
新版本下载 http://nginx.org/en/docs/njs/install.html
njs 0.4.0 主要变更
nginx modules:
- Feature: 在
r.headersOut{}
中添加对多值标头(multi-valued headers)的支持 - Feature: 为 http 和 stream 添加
js_import
指令 - Improvement: 改进
r.headersOut{}
中特殊标头的迭代 - Improvement: 改进
r.headersOut{}
中复制的迭代 - Change:
r.responseBody
属性处理程序现在返回undefined
,而不是在响应体不可用时抛出异常
Core:
- Feature: 在 CLI 中添加对脚本参数的支持
- Feature: 将外部值转换为原生 js 对象
- Bugfix: 修复
__proto__
属性处理程序中的空指针间接引用 - Bugfix: 修复”no-newline at the end of the script”的处理问题
- Bugfix: 修复
RegExp()
构造函数中的空模式和非空标志 - Bugfix: 修复
String.prototype.replace()
函数返回 non-string 的问题 - Bugfix: 修复在
fs
中读取伪文件(pseudofiles)的问题
详情查看 http://nginx.org/en/docs/njs/changes.html#njs0.4.0
转自 https://www.oschina.net/news/115227/njs-0-4-0-released