加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

mysql – Sequelize TypeError build.save不是一个函数

发布时间:2020-12-11 23:51:34 所属栏目:MySql教程 来源:网络整理
导读:我有一些jQuery逻辑设置,用户可以在其中提交多个字段值,这些字段值应该作为我的数据库中的单个记录创建.我以前解决这个问题的方法是将我的值映射到一个随后与.bulkCreate方法一起使用的变量,但我不知道MYSQL不支持使用此方法自动递增字段.结果我决定采用我的

我有一些jQuery逻辑设置,用户可以在其中提交多个字段值,这些字段值应该作为我的数据库中的单个记录创建.我以前解决这个问题的方法是将我的值映射到一个随后与.bulkCreate方法一起使用的变量,但我不知道MYSQL不支持使用此方法自动递增字段.结果我决定采用我的逻辑,而是使用.create方法创建一个for循环.不幸的是我收到此错误消息:TypeError:this.build(…).save不是行models.DiscoverySource.create(sources)中的函数.为什么在我不使用构建方法时会出现此消息?

.post(function(req,res){
        console.log(req.body.discoverySource);
    var sources = _.map(req.body.discoverySource,function (source) {
        return {
             discoverySource: source,organizationId: req.body.organizationId
        };
    });
    console.log("These are the" + sources); //outputs "These are the [object Object],[object Object],[object Object]
    console.log(sources[0].discoverySource); //outputs correctly first value 
    console.log(sources[0].organizationId); //outputs correctly the first value

    for (i=0; i < sources.length; i++){
        models.DiscoverySource.create(sources)
        .then(function(){
        return models.DiscoverySource.findAll();
        }).then(function(discoverySource){
        console.log(discoverySource);
        res.redirect('/app');
        }).catch(function(error){
        res.send(error);
        console.log('Error during Post: ' + error);
        });
    }
});
最佳答案 create方法无法接受对象数组.
如果您需要ID,并且需要等到创建所有对象,您将需要等待所有单独的创建承诺:

var promises = sources.map(source => models.DiscoverySource.create(source));

Promise.all(promises)
.then(() => models.DiscoverySource.findAll())
.then(discoverySource => {
  console.log(discoverySource);
  res.redirect('/app');
}).catch(error => {
  res.send(error);
  console.log('Error during Post: ' + error);
});

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读