0

有一种方法可以使 Node.JS 上的变量和函数在变量上使用 GLOBAL 前缀全局工作。

var app = express();

把它变成:

GLOBAL.app = express();

我害怕这种方法是关于当应用程序变大时这种方法的内存泄漏或其他东西的含义。

跳过此方法的另一种方法是在外部必需函数上使用外部参数。伊格:

var myFunction = require('./functions/myFunction.js') (app);

如果“myFunction”支持外部参数,您可以传递 app,但在这种方法中,您可以在每次初始化任何内部函数之前传递“app”参数并在函数范围内处理它。这是一个令人讨厌的行为,尽管它更“面向对象”。

你们能聊聊这些东西吗?我可以不断地将一些重要的变量放在全局范围视图中吗?

4

1 回答 1

1

不,在 Node 中使用任何全局变量都是不好的做法,这样做没有任何优势。app.js可以是你的主循环。您可以使用app.use或通过app使用以下两种模式之一:

var everyauth = require('./middleware/everyauth.js');
var errors = require('./middleware/errors.js');
app.use(everyauth.middleware());
errors(app);

如果你想让你的测试启动你的服务器,在 mocha 中做这样的事情:

before(function () {
  require('../../app.js');
});

问题不在于内存泄漏;它是关于最小化代码中的依赖关系。

于 2013-10-19T18:54:09.473 回答