Nodejs 'res is not defined' 里面需要
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')
});
set/cookie.js
res.cookie('login_session', urlUsername) // returns 'res' not defined
正如您所看到的,为了部分解决这个问题,我设置了 urlUsername
,这很有效。但肯定还有另一种方式:) ?
谢谢
您需要在您创建的模块中使用“module.exports”,因为需要returns一个同名对象。
您需要修改您的 cookie.js 文件,以便它创建一个具有缓存能力的对象,并且您可以将 'res' 对象传递给该对象,以便它在范围内可用
例如,您的 cookie.js 应如下所示:
module.exports.cookie = function(res){
return {
cache: function(){
/*your cookie code*/
return res.cookie('login_session', urlUsername);
}
};
}
此 returns 对象具有缓存方法,并且已将响应对象传递给它。然后,您可以通过以下方式调用它:
app.get('/api/user/:username', function(req, res) {
urlUsername = req.params.username;
var cookie = require('./set/cookie').cookie(res);
cookie.cache();
});
你需要像这样修改你的代码
======= 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
});
对于我的 api 我想要一个单独的文件来设置 cookie(使用 cookie-parser)。但是 res
或 req
未传递到所需文件...
index.js
app.get('/api/user/:username', function(req, res) {
urlUsername = req.params.username;
require('./set/cookie')
});
set/cookie.js
res.cookie('login_session', urlUsername) // returns 'res' not defined
正如您所看到的,为了部分解决这个问题,我设置了 urlUsername
,这很有效。但肯定还有另一种方式:) ?
谢谢
您需要在您创建的模块中使用“module.exports”,因为需要returns一个同名对象。
您需要修改您的 cookie.js 文件,以便它创建一个具有缓存能力的对象,并且您可以将 'res' 对象传递给该对象,以便它在范围内可用
例如,您的 cookie.js 应如下所示:
module.exports.cookie = function(res){
return {
cache: function(){
/*your cookie code*/
return res.cookie('login_session', urlUsername);
}
};
}
此 returns 对象具有缓存方法,并且已将响应对象传递给它。然后,您可以通过以下方式调用它:
app.get('/api/user/:username', function(req, res) {
urlUsername = req.params.username;
var cookie = require('./set/cookie').cookie(res);
cookie.cache();
});
你需要像这样修改你的代码
======= 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
});