node.js - node.js 中存储的模块变量在什么范围内?

标签 node.js

当我在我的 node.js 模块中执行此操作时:

var abc = '123';

它去哪儿了?我的意思是:在浏览器中,它进入 window.abc (如果没有在函数中执行或以其他方式执行)

如果我执行这个:

abc = '123';

然后我可以在 global.abc 中找到它,但这不是我想要的。

最佳答案

与浏览器不同,默认情况下变量分配给全局空间(即窗口),在 Node 中,变量的范围是模块(文件)除非您明确将它们分配给 module.exports .

实际上,当您运行 node myfile.jsrequire('somefile.js') 时,文件中的代码如下包装:

(function (exports, require, module, __filename, __dirname) {
     // your code is here
});

关于node.js - node.js 中存储的模块变量在什么范围内?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15406062/

相关文章:

javascript - 如何在 JavaScript 中获取类似 json 的字符串上的特定元素?

javascript - 从 node.js 调用时,mongoose .save() 会挂起 3 级子文档

node.js - verdaccio安装成功,但该软件包仅下载到verdaccio的存储中

node.js - 错误: Invalid protocol

mysql - nodeJS mysql库如何串行执行查询

javascript - "client.fetchUser"无法发送数据的问题

javascript - Node.js中setTimeout的最大时间限制

node.js - 如何将 Node 中的 multipart/form-data POST 请求转发到另一个服务

node.js - 生成 C :\Windows\system32\cmd. exe;C:\Program Files\Git\bin ENOENT

javascript - 为什么要使用 if (!!err)?