理解预加载对象
对于每个传入请求,njs 都会创建一个单独的虚拟机。这带来了很多好处,例如可预测的内存消耗或请求隔离。但是,由于所有请求都是隔离的,如果请求处理程序需要访问某些数据,则必须自行读取。当数据量很大时,这效率不高。
为了解决此限制,引入了预加载共享对象。此类对象是不可变的,并且没有原型链:它们的值不能更改,属性不能添加或删除。
使用预加载对象
以下是一些关于如何在 njs 中使用预加载对象的示例
- 按名称访问属性
preloaded_object.prop_name preloaded_object[prop_name]
- 枚举属性
for (i in preloaded_object_name) { ... }
- 使用
call()
应用非修改内置方法Array.prototype.filter.call(preloaded_object_name, ...)