Я новичок в node.js, и я пытаюсь реализовать простейшую авторизацию в Express. Я хочу установить req.session.userId
для ID пользователя из базы данных. Я могу получить идентификатор пользователя из базы данных, используя простую форму и отправить запрос, но я не могу установить 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!' });
}
I думаю, я не мог установить req.session.userId в этом месте, ause я обращаюсь сюда через POST. Если я прав, пожалуйста, помогите мне получить доступ к req.session
в этом месте.
Заранее спасибо.
Большое спасибо! Я думал о синхронизации/асинхронном исполнении, но я использую node.js только второй день, и мне довольно сложно ловить ошибки вроде этого! – kimonniez
Если вы здесь ... :) Как сделать перенаправление после req.session.userId = results [0] .id; ?? – kimonniez
Вы можете перенаправить с помощью ['res.redirect()'] (http://expressjs.com/4x/api.html#res.redirect). – mscdex