Sequelize中的返回值为调用方法

时间:2017-10-26 14:06:27

标签: node.js express sequelize.js

我正在为我的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 调用时返回值。

1 个答案:

答案 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);
  });
}