可以多次要求()同一个文件吗?

时间:2017-09-05 03:36:11

标签: javascript node.js

我有一个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');

我想知道这是否可行。节点在这两种情况下是否使用相同的引用,还是重复?

2 个答案:

答案 0 :(得分:1)

,这样做绝对没问题。 require()基本上包括当前页面上目标页面的内容。如果您需要在多个页面上使用这些模块,则需要在每个页面上使用require()

var common = require('./common.js')将导致变量common具有与module.exportscommon.js返回的变量完全相同的结构。事实上,它们将是完全相同的对象。

SitePoint 上有一些很好的文档。

希望这有帮助! :)

答案 1 :(得分:0)

没关系。但是,它们确实使用节点缓存的相同引用。所以尽量不要通过改变对象属性来改变所需的文件,否则你可能会遇到一些意想不到的行为。