《Nginx官方文档》关于nginScript

关于nginScript

nginScript是允许在 httpstream 中实现位置和变量处理程序的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

(0)
上一篇 2021年8月21日 10:19
下一篇 2021年8月21日 10:19

相关推荐

发表回复

登录后才能评论