使用全局传递项目中的参数的替代方法

时间:2016-08-13 19:16:54

标签: node.js

我是JavaC#开发人员。这是我第一次使用NodeJS

我想在项目中提供一些参数的值。例如,我想在整个项目中使用UserId。我使用global.username="SIA"来保存它并使用它来检索参数。

我发现在global中不鼓励使用NodeJS。那么解决方法是什么?

1 个答案:

答案 0 :(得分:0)

使用全局变量是不好的做法。 例如,由于单元测试或可重用性。

在类似情况下,使用设置创建单独的配置文件,然后将其注入模块

您的孩子模块可能看起来:

module.exports = function (config, otherDependences) {
  ...
};

父组件可能看起来:

var config = ...;
var otherDependences
require('./path/to/childComponent')(config, otherDependences);

大多数组件都具有两种结构“

module.exports = function (config, otherDependences) {
  ...
  require('./path/to/childComponent')(config, otherDependences);
  ...
};

按层次结构构建您的结构。每个组件对于某些组件是子组件,对于其他组件是父组件。但只传递所需的数据 - 而不是所有内容 - 它将简化单元测试。