我正在为我的ExpressJS项目使用Sequelize。
我的模型中有这个代码:
exports.findAll = () => {
let data = [];
Book.findAll().then(books => {
data = books; // book has array of objects
});
return data; // but data doesn't have even after assigning books to data
};
我希望方法 findAll 在 BookController 调用时返回值。
答案 0 :(得分:2)
您正在同步返回异步值,在这种情况下您可能想要做的事情,因为sequelize返回findAll
方法的承诺
exports.findAll = () => {
let data = [];
return Book.findAll();
};
然后在您的控制器中假设您已将模块作为BookService
并且在列表控制器方法中,您可以执行此操作以检索书籍
list(req, res) {
return BookService.findAll().then(books => {
data = books; // book has array of objects
console.log(data); // you have your books
return res.json(books);
});
}