node.js - 在nodejs中使用全局变量有多糟糕?

标签 node.js

我的代码的几乎每个文件都需要库(mongo、async ...)和一些核心函数。据我所知,加载模块是一个昂贵的过程。另外,在每个文件中多写 x 行代码是一件痛苦的事情。

那么在应用程序启动时要求它一次不是更聪明吗?

我知道全局变量通常不好,但在这种情况下它有多糟糕?

最佳答案

使用全局变量总是一个坏主意(故意大写),因此您应该留意其他解决方案。

由于模块在加载时会被缓存,因此它们不会太昂贵。执行一次还是多次都没有关系。

所以最简单的方法是在任何需要的地方require一个模块。

现在,有时模块需要一些配置。然后你需要确保这是在第一次加载模块时完成的。为此,创建一个像这样的包装器模块:

var foo = require('foo');

foo.configure(options);
// Or do whatever you need to do here to configure foo.

module.exports = foo;

现在你可以像这样使用它:

var configuredFoo = require('./configuredFoo');

这应该可以解决问题。

关于node.js - 在nodejs中使用全局变量有多糟糕?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30245811/

相关文章:

node.js - Nodejs 全局中间件

mysql - 具有复合主键和特定 VARCHAR 长度的 NodeJS MySQL ORM

Node.js - 单元测试中间件

javascript - Node.js 测试后清理数据库

javascript - 这段代码如何查找两个对象数组之间的差异?

javascript - mongodb:从嵌套的引用数组中提取一项

node.js - HTTP/2 在 AWS API Gateway + Lambda 上推送

json - Node js 从返回的 json 中删除一个字段

node.js - Bcrypt 3.0.1 无法在 Node v 8.12.0 上安装

angularjs - 在 Heroku 上部署 MEAN 应用程序时出现应用程序错误