我的 bulkCreate 方法有一个问题,其中我的数组中的值没有传递给 bulkCreate 方法,尽管以正确的(或我认为的)JSON 格式发送。可能是因为存储的变量在对象周围添加了 '' 吗?
这里是数组和对象设置代码:
return models.User.findAll({
where: {
email: { $or: userEmails}
}
}).then(function(user){
console.log('Member is triggered');
console.log(user);
for(var key in user){
memberAssociation.push("{ userId: " + user[key].userId + ", memberEmail: " + user[key].email + ", organizationId: " + user[key].organizationId + "}");
}
console.log('Here is the array ' + memberAssociation);
})
输出的
console.log
: Here is the array { userId: 126, memberEmail: dsfdf@st.com, organizationId: 1},{ userId: 127, memberEmail: sdfsdf@4iof.com, organizationId: 1}
然后作为bulkCreate发送:
.then(function(member){
console.log(memberAssociation);
return models.Member.bulkCreate(memberAssociation).then(function(member){
console.log(member);
console.log('New member')
res.send('Success')
});
输出(成员):
[ '{ userId: 126, memberEmail: dsfdf@st.com, organizationId: 1}',
'{ userId: 127, memberEmail: sdfsdf@4iof.com, organizationId: 1}' ]
SQL:
Executing (default): INSERT INTO `member` (`member_id`,`created_at`,`updated_at`) VALUES (NULL,'2017-03-06 07:36:57','2017-03-06 07:36:57'),(NULL,'2017-03-06 07:36:57','2017-03-06 07:36:57');
这是我完整的 POST 路线:
return models.User.findAll({
where: {
email: { $or: userEmails}
}
}).then(function(user){
console.log('Member is triggered');
console.log(user);
for(var key in user){
memberAssociation.push("{ userId: " + user[key].userId + ", memberEmail: " + user[key].email + ", organizationId: " + user[key].organizationId + "}");
}
console.log('Here is the array ' + memberAssociation);
}).then(function(member){
console.log(memberAssociation);
return models.Member.bulkCreate(memberAssociation).then(function(member){
console.log(member);
console.log('New member')
res.send('Success')
});
最佳答案
原因是当您执行 memberAssociation.push("...")
时,您在每次迭代时将 String
添加到您的 memberAssociation
数组而不是对象。你应该每次推送对象
memberAssociation.push({
userId: user[key].userId,
memberEmail: user[key].email,
organizationId: user[key].organizationId
});
然后您可以使用上面创建的数组执行
bulkCreate
,就像您在代码中所做的那样。 documentation
表示 records
的 bulkCreate
参数是一个对象数组:List of objects (key/value pairs) to create instances from
关于json - Sequelize - 可接受的批量创建格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42625928/