关于nginScript
nginScript是允许在 http 和 stream 中实现位置和变量处理程序的JavaScript语言的子集 。nginScript创建符合 ECMAScript 5.1 和一些 ECMAScript 6 扩展名。合规性仍在不断发展。
目前支持的是什么
- 布尔值,数字,字符串,对象,数组,函数和正则表达式
- ES5.1运算符,ES7求幂运算符
- ES5.1声明:var,if, else,switch,for, for in,while, do while,break, continue,return,try, catch,throw,finally
- ES6 Number及其 Math属性和方法
- String 方法:
- ES5.1:fromCharCode,concat, slice,substring, substr,charAt, charCodeAt,indexOf, lastIndexOf,toLowerCase, toUpperCase,trim, search,match,split,replace
- ES6:fromCodePoint,codePointAt, includes,startsWith, endsWith,repeat
- 非标:fromUTF8,toUTF8, fromBytes,toBytes
- Object 方法:
- ES5.1: create(无属性列表的支持), keys, defineProperty, defineProperties, getOwnPropertyDescriptor, getPrototypeOf, hasOwnProperty, isPrototypeOf, preventExtensions, isExtensible, freeze, isFrozen,seal,isSealed
- Array 方法:
- ES5.1: isArray,slice,splice, push,pop,unshift, shift,reverse,sort, join,concat,indexOf, lastIndexOf,forEach, some,every,filter,map,reduce,reduceRight
- ES6: of,fill,find,findIndex
- ES7: includes
- ES5.1 Function方法: call,apply,bind
- ES5.1 RegExp方法: test,exec
- ES5.1 Date方法
- ES5.1 全局函数: isFinite,isNaN, parseFloat,parseInt, decodeURI,decodeURIComponent, encodeURI,encodeURIComponent
什么还不支持
- ES6 let和const声明
- 标签
- arguments 排列
- eval 功能
- JSON 目的
- Error 目的
- setTimeout,setInterval, setImmediate功能非整数分数(.235),二进制(0b0101),八进制(0o77)文字
下载并安装
nginScript有两个模块:
这两个模块都不是默认构建的,它们应该是从源文件中编译的或者是作为一个Linux软件包来安装的。
安装为Linux软件包
对于Linux,可以使用nginScript模块 包:
- nginx-module-njs —nginScript 动态 模块
- nginx-module-njs-dbg — 调试nginx-module-njs包的符号
从源头建设
可以使用以下命令克隆具有nginScript源的存储 库:(需要 Mercurial 客户端):
hg clone http://hg.nginx.org/njs
然后使用–add-module配置参数编译模块 :
./configure --add-module=path-to-njs/nginx
模块也可以构建为 动态 的:
./configure --add-dynamic-module=path-to-njs/nginx
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/99536.html