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;
})
}
它起作用了!非常感谢。是的,我忘了还一个承诺。