Node.js 节点路由器可以';无法使用异步等待从Sequelize获取数据

Node.js 节点路由器可以';无法使用异步等待从Sequelize获取数据,node.js,asynchronous,sequelize.js,Node.js,Asynchronous,Sequelize.js,第一次使用Sequelize在我的节点路由器中尝试此代码: router.get('/get-users', async (req, res, next) => { const data = await users.getAll() console.log('users in router:', data); res.send(data) }); 这是Sequalize代码: const users = { getAll () { sequelize

第一次使用
Sequelize
在我的节点路由器中尝试此代码:

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

const users = {
  getAll () {
    sequelize
      .query('SELECT * FROM users', { model: User })
      .then(users => {
        console.log('users in database:', users);
        return users;
      })
  }
};
Sequelize代码中的log语句正在为我获取正确的数据,但router中的log语句未定义


这可能是async Wait的问题,但您能提供帮助吗?

尝试在getAll()中返回承诺。wait只是承诺的then()调用的包装器,但由于您没有返回承诺,因此wait不是在等待承诺

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

它起作用了!非常感谢。是的,我忘了还一个承诺。