我是否在脚下拍摄自己:
我想在我的Express应用程序中的app和req对象上提供config,core和mean。
我正在使用不在4.x API中的属性。我应该知道什么?
将它们添加为属性是否存在问题?
// express.js
module.exports = function(db, config, meanModules) {
var app = express();
// ...
// Get mean-core
var core = require('meanjs-core')(db, config);
// Attach config, core, and modules to app <==== POSSIBLE FOOT SHOOTING
app.config = config;
app.core = core;
app.mean = meanModules;
// Middleware to adjust req
app.use(function(req, res, next) {
// Add config, core, and modules to all requests <==== POSSIBLE FOOT SHOOTING
req.config = config;
req.core = core;
req.mean = meanModules;
next();
});
// ...
}
答案 0 :(得分:5)
我建议将单个属性附加到可能永远不会发生冲突的应用,并从那里访问所有内容,例如app.myLibrary
。
app.myLibrary = {config: config, core: core, mean: meanModules};
从路由/中间件中访问app.myLibrary:
req.app.myLibrary
除非中间件中发生的动态因每个请求而异,否则最好只使用req.app.myLibrary
访问它。