0
我是node.js中的newby,我嘗試在Express中實現最簡單的授權。我想從數據庫設置req.session.userId
到用戶標識。我可以使用簡單的表單和發佈請求從數據庫獲取用戶標識,但我無法設置req.session.userId
。對我來說最難以理解的是 - 爲什麼有時候req.session正在工作,有時卻不行。 我的代碼解釋。 在app.js:req.session未設置發佈請求
配置段:
app.use(express.session({secret: 'asdads', key: 'sid', cookie: { maxAge: 600000, httpOnly: false }}));
之後,我處理與POST請求:
app.post('/login', routes.authorize);
我routes.authorize:
exports.authorize = function(req, res){
if(req.body){
var login = req.body.login;
var password = req.body.password;
//gET USER FROM DATABASE
db.getUser(login, password, function(err, results){
//ensure that results is correct
console.log(results);
if(err){ res.send("User not found", 500); return;}
//PLACE WITH BUG :)
req.session.userId = results[0].id;
});
}
res.render('login', { title: 'Express!' });
}
我認爲我不能在這個地方設置req.session.userId我通過POST訪問這裏。如果我是對的,請幫助我在這個地方訪問req.session
。
在此先感謝。
非常感謝您!我想過同步/異步執行,但我僅在第二天使用node.js,並且很難找到像這樣的錯誤! – kimonniez 2014-10-07 13:21:53
如果你在這裏... :)如何做req.session.userId = results [0] .id;之後的重定向。 ?? – kimonniez 2014-10-07 13:44:07
您可以使用['res.redirect()'](http://expressjs.com/4x/api.html#res.redirect)重定向。 – mscdex 2014-10-07 13:58:38