nodejs 模組查詢一起快取機制

2021-06-28 06:38:52 字數 821 閱讀 2833

nodejs在載入外部自定義模組時對模組有查詢順序,找到後還會進行快取。

查詢順序:

1. 相對路徑,比如提供./ 或者../這種以'./'和『..』開始的路徑,簡單的,就是相對當前位置的路徑。

2.絕對路徑,這時候將按以下順序查詢:

假設執行路徑為c:\intel\research\subfolder

那麼查詢順序為

[ 'c:\\intel\\research\\subfolder\\node_modules',

'c:\\intel\\research\\node_modules',

'c:\\intel\\node_modules',

'c:\\node_modules' ]

然後是['.']

然後是:

windows下%node_path%,%userprofile%/.node_modules, %userprofile%/.node_libraries 

非windows下$node_path, $home/.node_modules, $home/.node_libraries 

然後是node.exe目錄的../../lib/node,所以這個具體取決於node二進位制檔案放**.

一旦載入成功就以模組的路徑進行快取,這裡有乙個陷阱。

就是如果父目錄包含x模組,且存在引用x模組的**。而子目錄也是相同的情況。那麼父目錄和子目錄下實際引用到的分別是自己目錄下的那個x模組,而不是之前那個的復用。也就是要注意他快取是匹配全路徑的。

那些年我們一起追過的快取寫法 一

本篇主要介紹下樓主平常專案中,快取使用經驗和遇到過的問題。基本寫法 快取雪崩 全域性鎖,例項鎖 字串鎖 快取穿透 再談快取雪崩 總結為了方便演示,這裡使用runtime.cache做快取容器,並定義個簡單操作類。如下 public class cachehelper public static vo...

一起學習SQL查詢系列之一 基本查詢(上)

1 從表中檢索所有行和列 問題 檢視乙個表中的所有資料。解決方案 對錶使用select語句並使用特殊字元 select from emp 討論 sql中的 符號是具有特殊意義的。使用它可返回指定表中的每一列。這裡由於沒有where字句,所以將返回表中的每一行。還有一種替代方法是分別列出每一列。sel...

一起買beta版模組單元測試

保證 質量,對各個模組進行單元測試,不僅可以有效地保證 的可靠性,讓模組在與別的模組整合時出現更少的錯誤。而且不用每次啟動程式而等待浪費時間。test public void testcallbacklogininfo throws exception 測試結果 測試結果 測試結果 測試結果 for...