我已經構建了一些其他expressjs應用程序,但我無法找到如何將用戶模型傳遞到前端或將其作爲參數放入req中。Nodejs - 登錄到前端的用戶數據
該應用程序是一個頁面的web應用程序,所以用戶使用登錄表單張貼到/登錄:
app.post('/login', require('./app/controllers/user').login);
控制器拾起,以處理該請求調用特定模塊:
exports.login = function (req,res) {
AccountHandler.login(req,function (response) {
if (response.code < 0) {
req.flash('error', response.msg);
}
else if (response.code > 0) {
req.flash('success', response.msg);
}
req.user = response.user;
res.redirect(response.url);
});
}
這裏是模塊處理登錄,並通過將所需參數調用回調:
exports.login = function (req,callback) {
process.nextTick(function() {
User.findOne({ 'valid.email': req.body.Email }, function (err, user) {
if (err) {
callback({url: '/#login', msg: "There was an unexpected error!", code: -10});
}
if (!user) {
callback({url: '/#login', msg: "No such email/password combination was found", code: -1});
}
if (user) {
easyPbkdf2.verify(user.valid.salt, user.valid.password, req.body.Password, function (err, valid) {
if (!valid){
callback({url: '/#login', msg: "No such email/password combination was found", code: -1});
}
else{
callback({user: user, url: '/', msg: "acknowledged", code: 10});
}
});
}
});
});
}
在控制器中,我說的是req.user = response.user;
,它不會保留,當用戶重定向到'/'時,req.user仍然是空的。我如何將這個用戶信息保存到重定向頁面?
爲什麼你不傳遞用戶ID作爲URL參數? –
我不想使用url參數。我現在想,也許我可以通過使用session.user – Drakoumel