[英]Nodejs 'res is not defined' inside require
对于我的api,我需要一个单独的文件来设置cookie(使用cookie-parser)。 但是res
或req
不会传递到所需的文件...
index.js
app.get('/api/user/:username', function(req, res) {
urlUsername = req.params.username;
require('./set/cookie')
});
集/ cookie.js
res.cookie('login_session', urlUsername) // returns 'res' not defined
如您所见,部分解决了这个问题,我设置了urlUsername
。 但是肯定有另一种方法:)?
谢谢
您需要像这样修改代码
======= set / cookie.js ==========
module.exports = function(res) { // accept res parameter
res.cookie('login_session', urlUsername)
};
=========== index.js ===========
app.get('/api/user/:username', function(req, res) {
urlUsername = req.params.username;
require('./set/cookie')(res); // pass res to module
});
您需要在根据需要创建的模块中使用“ module.exports ”,以返回具有相同名称的对象。
您需要修改cookie.js文件,以便它创建一个具有缓存功能的对象,并且可以将“ res”对象传递给它,以便在范围内可用
例如,您的cookie.js应该如下所示:
module.exports.cookie = function(res){
return {
cache: function(){
/*your cookie code*/
return res.cookie('login_session', urlUsername);
}
};
}
这将返回一个具有缓存方法并已将响应对象传递给它的对象。 然后,您可以通过调用以下命令来调用它:
app.get('/api/user/:username', function(req, res) {
urlUsername = req.params.username;
var cookie = require('./set/cookie').cookie(res);
cookie.cache();
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.