Sequelize: проблема в bulkCreate при вставке массива - PullRequest
0 голосов
/ 11 июля 2019

Я пытаюсь выполнить массовую вставку данных, поступающих из тела запроса, и не могу вставить их в базу данных.

Я пробовал bulkCreate(JSON.parse(req.body.myData.toString()), но это не сработало, как ожидалось.

Я пробовал другие решения, связанные с моей проблемой и получал различные виды ошибок.

Это myData :

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

Это мой метод массового создания :

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 голосов
/ 18 июля 2019

Похоже на проблему, которую я передавал в Почтальоне. Я изменил заголовок на Content-Type: application/json и передал данные в формате Raw следующим образом:

{ "myData": 
   [ { "id": "121", "anotherId": "3" }, 
     { "id": "122",  "anotherId": "3" }, 
     { "id": "123", "anotherId": "3"} ] 
}
0 голосов
/ 11 июля 2019

Должно работать, если вы правильно определили модель myData.

myData должен быть коллекцией в теле запроса.

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

, а затем

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