gpt4 book ai didi

javascript - 是否为每个需求创建了一个 node.js 模块实例?

转载 作者:搜寻专家 更新时间:2023-10-31 23:30:51 25 4
gpt4 key购买 nike

我正在尝试解决 node.js 应用程序中的错误。

在名为 mmm 的模块中,我有一个名为 xxx 的局部变量(未导出),它被设置为 false。有一个名为 enableXXX() 的导出函数,它将变量设置为 true。另一个模块 nnn 需要 mmm 并调用 enableXXX()

其他模块需要mmm,但是好像没有调用enableXXX()。它的行为就好像 xxx 仍然是 false

这是否意味着每个都需要创建一个单独的模块实例?

更新

我发现这是一个错误的大写字母:

// Module A
var XXX = require("./myDir/xxx.js");
...

// Module B
var XXX = require("./mydir/xxx.js");
...

最佳答案

不,它没有。让我们做一个实验:

mmm.js:

var xxx = false;

exports.enableXXX = function() {
xxx = true;
}

exports.isEnabled = function() {
return xxx;
}

nnn.js:

require('./mmm').enableXXX();

ma​​in.js:

require('./nnn');

console.log('The result is: ' + require('./mmm').isEnabled());

现在让我们运行 main.js:

$ node main.js
The result is: true

这是来自 the official docs 的解释:

  • 模块在第一次加载后被缓存。这意味着(除其他事项外)每次调用 require('foo') 都会得到返回的完全相同的对象,如果它解析为相同的文件的话。

关于javascript - 是否为每个需求创建了一个 node.js 模块实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24125459/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com