无法在Sequelize.js

时间:2016-01-28 13:45:32

标签: node.js sequelize.js

我正在使用sequlize创建父实例和子实例,但它会抛出以下错误。

Site.hasMany(Group,{as:'groups'});
Group.belongsTo(Site);

//not working
Site.create(siteData).then((site)=>{
  site.addGroups(groupData).then(()=>{  //also tried addGroup
    next();
  });
});

//this works
Site.create(siteData).then((site)=>{
 groupData.SiteId=site.id;
 Group.create(groupData).then(()=>{
    next();
 });
});

错误:

  

未处理拒绝TypeError:val.replace不是函数       at Object.SqlString.escape(c:\ APi \ node_modules \ sequelize \ lib \ sql-string.js:61:15)       at Object.QueryGenerator.escape(c:\ APi \ node_modules \ sequelize \ lib \ dialects \ abstract \ query-generator.js:983:22)

2 个答案:

答案 0 :(得分:0)

假设您有一个任务和不同的时间表,那么您可以尝试这样的,您可以创建大量的时间表或单个任务,只需将bulkeCreate更改为{{1} }

create

你的json for taskschedule以及为帖子正文中的任务设置的值

    var ts=req.body.task_time;


    tasks.create(req.body).then(function (taskvalues) {

         //for adding taskId with each object to prepare object for bulk

         for(var i=0;i<ts.length;i++)

         ts[i].taskId = taskvalues.id;

        taskschedule.bulkCreate(ts,{ individualHooks: true }).then(function (allschedule) {

            res.status(200).json({"message":"Post saved successfully"});

        }).catch(function (err) {
            res.status(500).json(err)
        }).catch(function (err) {
            res.status(500).json(err);

        })

    })

答案 1 :(得分:-1)

如果您有以下任何代码向Object添加自定义属性,您将面临此问题。

Object.prototype.xxx = function(o) {
  ...
}

当Sequelize编写sql时,它会遍历参数的所有属性,包括这个自定义属性。