我想将 app.js 中的其他数据传递给 express-resource 路由,但我还没有弄清楚。你会怎么做?请注意,我正在使用 express-resource
// app.js
var myAddOnData = 'abc';
app.resource('users', './routes/user');
// user.js
exports.index = function (req, res) {
console.log(myAddOnData);
};
谢谢
我想将 app.js 中的其他数据传递给 express-resource 路由,但我还没有弄清楚。你会怎么做?请注意,我正在使用 express-resource
// app.js
var myAddOnData = 'abc';
app.resource('users', './routes/user');
// user.js
exports.index = function (req, res) {
console.log(myAddOnData);
};
谢谢
这是我能想到的三种方法。如果我对您的具体问题知之甚少,听起来中间件可能是解决问题的方法。
app
变量app.set
使用in创建一个值app.js
,然后使用app.get
in检索它user.js
。
将信息存储在一个独立的模块中,然后require()
根据需要存储。如果这是跨多个实例运行,您显然希望将值存储到磁盘而不是内存中。
// keystore.js
// -----------
module.exports.set = function(id, val) { /* ... */ };
module.exports.get = function(id) { /* ... */ };
// app.js
// -----------
var ks = require('./keystore');
ks.set = function("userInfo", "abc");
module.exports.get = function(id) { /* ... */ };
// user.js
// -----------
var ks = require('./keystore');
ks.get = function("userInfo", "abc");
(也许检查一下锅?)
使用自定义中间件将数据附加到请求对象,然后可以稍后在路由处理程序中访问。
//app.js
//------
var express = require('express')
, cookieSessions = require('./cookie-sessions');
var app = express();
app.use(express.cookieParser('manny is cool'));
app.use(cookieSessions('sid'));
// ...
//cookie-sessions.js
//------------------
module.exports = function(name) {
return function(req, res, next) {
req.session = req.signedCookies[name] || {};
res.on('header', function(){
res.signedCookie(name, req.session, { signed: true });
});
next();
}
}