我知道全局变量是不好的。
但是,如果我在框架中的40个文件中使用node的模块"util“,将其声明为全局变量不是更好吗?如下所示:
util = require('util');
在index.js文件中而不是在40个文件中编写该行?
因为我经常在每个文件中使用相同的5-10个模块,这将节省大量的时间,而不是一直复制粘贴。
在这种情况下干酒不是很好吗?
发布于 2010-11-24 18:37:45
你可以只有一个通用的模块。
common.js:
Common = {
util: require('util'),
fs: require('fs'),
path: require('path')
};
module.exports = Common;
app.js:
var Common = require('./common.js');
console.log(Common.util.inspect(Common));
发布于 2010-11-28 09:15:50
global.util = require('util');
在node documentation中有一个关于全局对象的部分。
但是,应该小心使用全局变量。通过向全局空间添加模块,可以降低可测试性和封装性。但在某些情况下,使用此方法是可以接受的。例如,我将函数和对象添加到全局名称空间,以便在单元测试脚本中使用。
发布于 2012-02-01 06:17:06
我被这个帖子里的答案搞糊涂了。
我能做到这一点。
文件: test.js
global.mytest = {
x: 3,
y: function() { console.log('Works.'); }
};
文件: test2.js
console.log('Does this work?');
mytest.y();
文件: server.js
require('test.js');
require('test2.js');
而且它看起来像是所需要的问题。第一个请求将mytest对象放入全局作用域,然后第二个请求可以在没有任何其他限定符的情况下访问该对象。
我试图弄清楚这一点(这让我从谷歌搜索中找到了这个帖子),现在我想发布对我来说似乎有效的帖子。也许与最初的答案相比,情况已经发生了变化。
https://stackoverflow.com/questions/4140661
复制相似问题