Я пытаюсь добавить в Node.js id к сеансу, извлеченному из базы данных. Я редактирую пароход для этой цели, но все, кроме прохождения идентификатора, работает. Я знаю, почему это не работает. Это связано с тем, что запрос в node.js является асинхронным. К сожалению, я не знаю, как его решить, чтобы вернуть его в функцию.
req.user = user;
connection.query("select * from users where steamid = "+user.steamid, function(err, row){
if(err) {
throw err;
} else {
req.user.id = row[0].id;
//And now when i trying to console.log(req.user.id) i will se the id from database.
}
});
//But here when i try console.log(req.use.id) i see undefined.
Мне нужно установить req.user.id = id
из базы данных.
Я не могу это сделать, потому что это не работает.
Как только вы получите результат запроса, верните его:
user.find('first', { where: "steamid = " + player.steamid }, function(err, row) {
if (row === undefined || row === null) {
user.save();
} else {
user.set('id', row.id);
user.save();
}
});
user.find('first', { where: "steamid = " + player.steamid }, function(err, row) {
return Promise.resolve({
id: row.id,
_json: player,
steamid: steamID,
username: player.personaname,
name: player.realname,
profile: player.profileurl,
avatar: {
small: player.avatar,
medium: player.avatarmedium,
large: player.avatarfull
},
hascsgo: hascsgo
});
});