Ich konnte keine einfache for-Schleife verwenden, da request.save eine Funktion ist. Also habe ich forEach versucht. Es funktioniert perfekt! Bis ich den request.save Teil hinzufüge und ich die folgende Fehlermeldung erhalte, die meine App unterbricht.Iterate speichern in Node.JS über ein Array
Fehler: Header können nach dem Senden nicht festgelegt werden.
exports.submit = function (req, res) {
Person.find({
cellPhone: req.body.phone
}).exec(function (err, people) {
people.forEach(saveRequest);
}
function saveRequest(item, index) {
var request = new Requests();
request.start = req.body.start.value;
request.finish = req.body.finish.value;
request.phone = req.body.phone;
request.offDay = req.body.date;
request.user = people[index]._id;
request.name = people[index].name;
request.group = people[index].group;
request.save(function (err) {
if (err) {
console.log('request.save');
return res.status(400);
} else {
// Remove sensitive data before login
//user.password = undefined;
//user.salt = undefined;
console.log(request);
res.json(request);
}
});
}
});
Sie können 'res.json' nicht mehrmals aufrufen, Sie sollten res.write verwenden. Da das Speichern asynchron ist, denke ich, das Beste ist, Promise –
Danke zu verwenden! Wie sollte der Code aussehen? Ich habe versucht res.writeHead (200, {'Content-Type': 'text/plain'}); und ich habe versucht, res.write (200, {'Content-Type': 'text/plain'}); mehrere Male und sie beide die App gebrochen. –