节点路由器无法使用异步等待从Sequelize获取数据

时间:2018-11-09 14:08:44

标签: node.js asynchronous sequelize.js

第一次使用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;
      })
  }
};

Sequelize代码中的log语句为我提供了正确的数据,但路由器中的log语句未定义。

可能是异步等待问题,但是您能帮忙吗?

1 个答案:

答案 0 :(得分:1)

尝试在getAll()中返回promise。 Await只是对promise的then()调用的包装,但是由于您没有返回诺言,所以await不在等待诺言。

File.ReadAllText(filePath, Encoding.Default);