[英]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)
假設你有一個任務,不同的時間表,所以你可以嘗試這樣的事情,你可以創造大量的時間表或單任務也只是改變bulkeCreate
來create
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.