Публикация нескольких документов с помощью почтальона не работает - PullRequest
0 голосов
/ 21 января 2019

Я пытаюсь опубликовать данные с помощью почтальона, но когда я попытался использовать несколько документов, в моем mongodb они отображаются пустыми. Но когда я пытаюсь вставить один документ, он сохраняет данные. Пожалуйста, поправьте меня, я новичок в этом

server.js

app.post('/bloodinventory', function(req, res) {
    var bloodinventory= new Bloodinventories(); 
    bloodinventory.blood_group = req.body.blood_group;  
    bloodinventory.blood_category = req.body.blood_category; 
    bloodinventory.num_stock = req.body.num_stock; 
    bloodinventory.save(function(err) {
        if (err) {
            res.json({ success: false, message: 'Blood Donation already exists!' }); 
        } else {
            res.json({ success: true, message: 'Blood Donation Created!' });
        }
    });
});

Тогда в моем почтальоне я попытался вставить эти данные:

{
"bloodinventories":[
        {
            "blood_group":"A_positive",
            "blood_category":"whole blood",
            "num_stock":11
        },
        {
            "blood_group":"A_negative",
            "blood_category":"platelet",
            "num_stock":9
        }
    ]
}

Тогда в моем mongodb ничего не отображается, результат:

_id:5c45c6a495788ec2c47f8c8b
__v:0

1 Ответ

0 голосов
/ 21 января 2019

Когда вы предоставляете один документ в вашем запросе POST

Пример: -

{
    "blood_group":"A_positive",
    "blood_category":"whole blood",
    "num_stock":11
 }

легко получить request.body.blood_group , request.body.blood_category и показать на

Но при передаче документа Mutliple в POST-запросе в виде массива

{
"bloodinventories":[
        {
            "blood_group":"A_positive",
            "blood_category":"whole blood",
            "num_stock":11
        },
        {
            "blood_group":"A_negative",
            "blood_category":"platelet",
            "num_stock":9
        }
    ]
}

Теперь ваш запрос получает массив, поэтому ваше тело запроса содержит bloodinventories . И вы можете получить к нему доступ request.body.bloodinventories Возьмите этот const и примените к нему цикл и вставьте весь документ.

Или просто сделайте API таким и всегда отправляйте массив при каждом запросе вставки.

Bloodinventories.insertMany(request.body.bloodinventories).then((result) => { 
  //Success Message
}).catch(err => {
 // Error Message
});

Это может помочь вам ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...