如何在app.js
中设置变量并使其在所有路由中都可用,至少在routes中的index.js
文件中可用。使用express框架和node.js
发布于 2014-01-15 17:13:37
实际上,使用express对象上可用的"set“和"get”方法很容易做到这一点。
示例如下,假设您有一个名为config的变量,其中包含您希望在其他地方可用的与配置相关的内容:
在app.js中:
var config = require('./config');
app.configure(function() {
...
app.set('config', config);
...
}
在routes/index.js中
exports.index = function(req, res){
var config = req.app.get('config');
// config is now available
...
}
发布于 2016-02-08 19:07:15
要做到这一点,一种很好的方法是使用Express本身提供的app.locals
。Here是文档。
// In app.js:
app.locals.variable_you_need = 42;
// In index.js
exports.route = function(req, res){
var variable_i_needed = req.app.locals.variable_you_need;
}
发布于 2012-03-19 15:38:18
要声明一个全局变量,你需要使用global对象。比如global.yourVariableName。但这不是一种真正的方式。要在模块之间共享变量,请尝试使用如下的注入样式
someModule.js:
module.exports = function(injectedVariable) {
return {
somePublicMethod: function() {
},
anotherPublicMethod: function() {
},
};
};
app.js
var someModule = require('./someModule')(someSharedVariable);
或者,您可以使用代理对象来执行此操作。比如hub。
someModule.js:
var hub = require('hub');
module.somePublicMethod = function() {
// We can use hub.db here
};
module.anotherPublicMethod = function() {
};
app.js
var hub = require('hub');
hub.db = dbConnection;
var someModule = require('./someModule');
https://stackoverflow.com/questions/9765215
复制相似问题