了解預先載入的物件
對於每個傳入的請求,njs 都會建立一個獨立的虛擬機器。這帶來許多好處,例如可預測的記憶體消耗或請求隔離。然而,由於所有請求都是隔離的,如果請求處理程式需要存取某些資料,它必須自行讀取。當資料量很大時,這尤其沒有效率。
為了解決這個限制,引入了預先載入的共享物件。這種物件被創建為不可變的,並且沒有原型鏈:它們的值不能被更改,屬性不能被添加或刪除。
使用預載物件
以下是一些如何在 njs 中使用預載物件的範例
- 透過名稱存取屬性
preloaded_object.prop_name preloaded_object[prop_name]
- 列舉屬性
for (i in preloaded_object_name) { ... }
- 使用
call()
應用非修改的內建方法Array.prototype.filter.call(preloaded_object_name, ...)