序列化:在插入数组时在bulkCreate中发布

时间:2019-07-11 08:17:27

标签: node.js express sequelize.js postman bulkinsert

我试图批量插入来自请求主体的数据,并在将其插入数据库时​​遇到麻烦。

我尝试了bulkCreate(JSON.parse(req.body.myData.toString()),但是没有按预期工作。

我尝试了与我的问题相关的其他解决方案,并得到了不同类型的错误。

这是 myData

myData:
{ id: 121, anotherId: 3},
{ id: 122, anotherId: 3},
{ id: 123, anotherId: 3}

这是我的 bulkCreate方法

exports.create = (req, res) => {
    console.log(JSON.parse(req.body.myData.toString()));
    // Save to PostgreSQL database
    MyData.bulkCreate([req.body.myData])
        .then(myData=> {        
            // Send created MyData to client
            res.status(200).json(myData);
        }).catch(err => {
            console.log(err);
            res.status(500).json({msg: "error", details: err});
        });
};

我尝试将req.body.myData添加为类似bulkCreate([req.body.myData])

的数组

请让我知道我在哪里做错了。

2 个答案:

答案 0 :(得分:0)

如果正确定义了myData模型,它应该可以工作。

myData应该在请求正文中收集。

myData: [
   { id: 121, anotherId: 3},
   { id: 122, anotherId: 3},
   { id: 123, anotherId: 3}
]

然后

MyData.bulkCreate(req.body.myData)
  .then(myData=> {
    .....
  }).catch(err => {
    .....
  });

答案 1 :(得分:0)

好像是我在邮递员中传递的问题。我将Header更改为Content-Type: application/json并将数据以Raw格式传递,如下所示:

{ "myData": 
   [ { "id": "121", "anotherId": "3" }, 
     { "id": "122",  "anotherId": "3" }, 
     { "id": "123", "anotherId": "3"} ] 
}