Узел маршрутизатор не может получить данные из Sequelize с помощью асинхронного ожидания - PullRequest
0 голосов
/ 09 ноября 2018

Используя Sequelize в первый раз, я пытаюсь этот код в моем маршрутизаторе Node:

router.get('/get-users', async (req, res, next) => {
  const data = await users.getAll()
  console.log('users in router:', data);
  res.send(data)
});

А это следующий код:

const users = {
  getAll () {
    sequelize
      .query('SELECT * FROM users', { model: User })
      .then(users => {
        console.log('users in database:', users);
        return users;
      })
  }
};

Оператор log в коде Sequelize дает мне правильные данные, но оператор log в маршрутизаторе становится неопределенным.

Вероятно, это проблема асинхронного ожидания, но вы можете помочь?

1 Ответ

0 голосов
/ 09 ноября 2018

Попробуйте вернуть обещание в getAll (). Await - это просто оболочка для вызова обещания then (), но, поскольку вы не возвращаете обещание, ожидание не ожидает обещания.

  getAll () {
    return sequelize
      .query('SELECT * FROM users', { model: User })
      .then(users => {
        console.log('users in database:', users);
        return users;
    })
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...