簡體   English   中英

無法在Sequelize.js上一對多創建子實例

[英]Unable to create child instance for one-to-many on 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不是Object.QueryGenerator.escape(c:\\ APi)上的Object.SqlString.escape(c:\\ APi \\ node_modules \\ sequelize \\ lib \\ sql-string.js:61:15)處的函數\\ node_modules \\ sequelize \\ lib \\ dialects \\ abstract \\ query-generator.js:983:22)

假設你有一個任務,不同的時間表,所以你可以嘗試這樣的事情你可以創造大量的時間表或單任務也只是改變bulkeCreatecreate

    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);

        })

    })

您的json用於taskschedule以及在正文中為task設置的任何值

 "task_time": [
  {
    "shift": "m",
    "date": "01/23/2017",
    "start_time": "2017-01-22 19:00:00",
    "end_time": "2017-01-23 19:00:00",
      "status":"2",
      "user_id":"12"
  },

  {
    "shift": "m",
    "date": "01/23/2017",
    "start_time": "2017-01-22 19:00:00",
    "end_time": "2017-01-23 19:00:00",
      "status":"2",
      "user_id":"12"
  }

],

如果您有如下所示的將自定義屬性添加到對象的任何代碼,則將遇到此問題。

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

當Sequelize編寫sql時,它將遍歷參數的所有屬性,其中將包括此自定義屬性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM