使用express / node中的全局变量



试图找到一个解决方案,我找到了4个解决方案,但我想知道哪一个是更好的/最佳实践。为什么!: P

1。使用req.app.get ()

// app.js
app.set('settings', { domain: 'http://www.example.org' });
// other file
console.log(req.app.get('settings'));

2。使用req.app.settings(类似于上面)

// app.js
app.set('settings', { domain: 'http://www.example.org' });
// other file
console.log(req.app.settings.settings);

3。导出应用程序对象,这样我就可以访问app.get()而不需要req对象

// app.js
app.set('settings', { domain: 'http://www.example.org' });
module.exports = app;
// other file
var app = require('../app');
console.log(app.get('settings'));

4。使用全局变量。可能是个坏主意,但是……"设置"不是一个全局的东西吗?(我可以避免重用它,所以我不会得到范围问题)

// app.js
settings = { domain: 'http://www.example.org' };
// other file
console.log(settings);

点评:

1。使用req.app.get ()

这里,我们定义了全局属性的访问方法(getter/setter)。所以语法正确,很容易理解。

2。使用req.app.settings(类似于上面)

这里,我们定义了setter,但没有使用getter来访问value。在我看来,这不是一个好方法。而且,它也很难理解。

console.log(req.app.settings.settings);

3。导出应用程序对象,这样我就可以访问app.get()而不需要req对象

为什么,你需要导入一个文件,如果你可以访问它。如果您对app模块有很高的依赖性(例如,您需要大量的全局设置),这可能会很有用,这通常是构建应用程序时的情况。

4。使用全局变量。可能是个坏主意,但是……"设置"不是一个全局的东西吗?(我可以避免重用它,所以我不会得到范围问题)这不是一个好方法,因为在这种情况下代码是不可维护的。

国际海事组织,重点是:1> 3> 2> 4。

相关内容

  • 没有找到相关文章

最新更新