Передача row.id из базы данных для возврата в функцию - Node.js

0

Я пытаюсь добавить в 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 из базы данных.
Я не могу это сделать, потому что это не работает.

Теги:
variables
steam-web-api

1 ответ

0

Как только вы получите результат запроса, верните его:

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
     });                                                           
 });
  • 0
    К сожалению, это не работает, тогда остальной код не вызывает и пользователь не добавляется в сеанс.
  • 0
    Какой результат вы получаете, когда вы получаете свою функцию?
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню