Findone - асинхронная команда, из-за которой вы получаете неопределенное значение.
Даже если вы заметите
«сессия снаружи:» идет первым
только после этого «result:» появится консоль.
Так что, если вам нужно переместить код внутри findone или использовать пользовательское промежуточное ПО, где вы можете выполнить запрос.
используйте этот тип кода в приложении js перед вызовом маршрутов
app.use(function(req,res,next){
users.findOne({email: clientCommand}, function (err, result) {
if (err) {
return console.log("error: ", err);
}
console.log("result: ", result.email);
// if user exists add user in session
if (result != null) {
req.session.user = result;
next(); // After setting user , route will call
}else{
next(); // will allow to go to route even if no user found
}
});//.catch(console.log);
})
если вы хотите вызвать его по определенному URL, тогда используйте
app.use ("[ваш URL]", функция (req, res, next) {