Я работал над приложением и только что столкнулся с проблемой, когда я вызываю базу данных с токеном сеанса, который затем должен дать мне идентификатор пользователя, который работает нормально. Проблема в том, что возвращаемый токен находится в объекте и имеет несколько свойств, но, например, когда я перехожу к пользователю token.id
, он возвращает неопределенное значение ...
Я пытался сохранить это в переменной и использовать его со вторым вызовом для пользователя. Не повезло с этим!
app.get("/api/account/getProfile", (req, res) => {
// Get the token
const { query } = req;
const { token } = query;
var data = {};
UserSession.find(
{
_id: token,
isDeleted: false
},
(err, sessions) => {
if (err) {
console.log(err);
return res.send({
success: false,
message: "Error: Server error"
});
}
if (sessions.length != 1) {
return res.send({
success: false,
message: "Error: Invalid"
});
} else {
User.findById(sessions.userId, function(err, userData) {
doSomething();
return res.send({
success: true,
message: "Good"
});
});
}
}
);
});
Я ожидаю, что UserSession.find вернет токен, который он делает правильно, однако User.findById, sessions.userId возвращает неопределенное значение, но когда я регистрирую переменную сессий, я получаю в консоли следующее:
[ { userId: '5c3f31305f5d3ad718d83ab6',
timestamp: 2019-01-16T10:36:51.899Z,
isDeleted: false,
_id: 5c3f313f5f5d3ad718d83ab7,
__v: 0 } ]
Есть идеи?