试图找到一个解决方案,我找到了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。