2017-09-05 92 views
-1

我有一個server.js看起來像:可以多次請求()同一個文件嗎?

var app1 = require('./app1.js'); 
app1.start(); 

var app2 = require('./app2.js'); 
app2.start(); 

現在我有一個用於在兩個app1.js和app2.js.一個common.js

所以在app1.js我:

var common = require('./common.js'); 

和app2.js我:

var common = require('./common.js'); 

我想知道如果這是確定要做到這一點。節點在這兩種情況下是否使用相同的參考,還是重複?

+0

是的,這很好,他們會是同一個對象(雖然它通常不是最好的設計)。 – Ryan

+0

@Ryan爲什麼我不應該指望那部分?如果這不是行爲,那麼大部分互聯網都會崩潰。 – 2017-09-05 03:41:10

+0

節點緩存需要,所以它真的沒關係你需要多少次 – adeneo

回答

1

,這樣做絕對沒問題。 require()本質上包括當前頁面上的目標頁面的內容。如果您需要在多個頁面上使用模塊,則需要在每個頁面上使用require()

var common = require('./common.js')將導致變量common具有與module.exportscommon.js中返回的結果完全相同的結構。事實上,他們將是完全相同的對象。

有關於此的一些偉大的文檔在SitePoint

希望這會有所幫助! :)

0

沒關係。但是,它們確實使用了由節點緩存的相同引用。所以儘量不要通過改變對象屬性來改變所需的文件,否則可能會遇到一些意外的行爲。

相關問題