我有一个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 :(得分:1)
是,这样做绝对没问题。 require()
基本上包括当前页面上目标页面的内容。如果您需要在多个页面上使用这些模块,则需要在每个页面上使用require()
。
var common = require('./common.js')
将导致变量common
具有与module.exports
中common.js
返回的变量完全相同的结构。事实上,它们将是完全相同的对象。
在 SitePoint 上有一些很好的文档。
希望这有帮助! :)
答案 1 :(得分:0)
没关系。但是,它们确实使用节点缓存的相同引用。所以尽量不要通过改变对象属性来改变所需的文件,否则你可能会遇到一些意想不到的行为。