【问题标题】:Sequelize Invalid value [object Promise] using assocationsSequelize Invalid value [object Promise] 使用关联
【发布时间】:2017-11-18 23:00:41
【问题描述】:

我目前的模型:

let Book = sequelize.define('book', {
  title: Sequelize.STRING,
  author: Sequelize.STRING,
  ...
});

let Recommendation = sequelize.define('recommendations', {
  reasoning: Sequelize.STRING,
  rating: Sequelize.FLOAT,
});

Book.belongsToMany(Recommendation, {through: 'bookrecommendation'});
Recommendation.belongsToMany(Book, {through: 'bookrecommendation'});

当执行 addRecommendation 方法下面的代码来为 Book 添加推荐时,我得到一个错误 Error: Invalid value [object Promise]

Book.findOrCreate({
  where: { id: '1' }, defaults: {
    author: 'test',
    title: 'test'
  }
})
.spread(function (b, createdBook) {
const rec = Recommendation.create(
  {
    reasoning: 'test',
    rating: 1
  });
  b.addRecommendation(rec).then((result) => {

  }, (error) => {
    console.log(error);
  })
}

【问题讨论】:

    标签: mysql node.js database sequelize.js


    【解决方案1】:

    这里的问题是rec 是一个承诺。 这应该可以解决问题

    Book.findOrCreate({ where: { id: '1' }, defaults: {
      author: 'test',
      title: 'test'
    }}).spread(function (b, createdBook) {
    Recommendation.create({
     reasoning: 'test',
     rating: 1
    }).then((rec) => {
      b.addRecommendation(rec).then((result) => {}, (error) => {
        console.log(error);
       })
    })
    

    【讨论】:

    • 当然可以,我没有想到那个。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-12-27
    • 2017-10-15
    • 2021-05-27
    • 2021-10-17
    • 2014-10-10
    • 2016-04-11
    • 2013-10-22
    相关资源
    最近更新 更多