2017-03-03 7 views
0

ich ein Array von Strings gespeichert werden soll, aber ich bin immer folgende Fehlermeldung:Ich möchte mit Mungo ein Array von Zeichenfolge speichern, aber ich bin immer Fehler

Error: Can't set headers after they are sent.

dies ist mein Code speichern:

router.post('/addalluserskills', function(req, res){ 
    console.log(req.body); 
     var userSkill = new UserSkill(); 
     userSkill.email = req.session.email; 

    for (var i = 0; i < req.body.mySkills; i++){ 

     userSkill.user_skill_id = req.body.mySkills[i]; 
     userSkill.save(function(err){ 
     if(err) return res.send(err); 
     res.json({ 
      message: '201: Successfully added skill' 
     }); 
    }); 
    } 

}); 

Kann ich nicht zweimal speichern? Ich verstehe nicht, was hier das Problem sein könnte. Ist die Verbindung noch offen und ich muss schließen, bevor ich eine weitere sende?

Edited:

Antwort:

router.post('/addalluserskills', function(req, res){ 

    for (var i = 0; i < req.body.mySkills.length; i++){ 
     var userSkill = new UserSkill(); 
     userSkill.email = req.session.email; 
     userSkill.user_skill_id = req.body.mySkills[i]; 
     userSkill.save(function(err){ 
     if(err) return res.send(err); 

    }); 
    } 
      res.json({ 
       message: '201: Successfully added skill' 
      }); 

}); 

Antwort

1

die Antwort senden, nachdem der gesamte Array-Prozess durchgeführt wird,

vorher Ihr req.body.mySkills das Array enthält, verarbeiten Sie das erste Element aus dem Array und speichern es und tun res.json und wieder das zweite Element aus dem Array ist verarbeitet und Sie sind die Antwort Header res.json wieder senden, die einen Fehler Error: Can't set headers after they are sent. 012 werfen wirdweil Sie bereits die Antwortheader gesendet haben.

router.post('/addalluserskills', function (req, res) { 
    console.log(req.body); 
    var userSkill = new UserSkill(); 
    userSkill.email = req.session.email; 

    for (var i = 0; i < req.body.mySkills; i++) { 
     userSkill.user_skill_id = req.body.mySkills[i]; 
     userSkill.save(function (err) { 
      if (err) return res.send(err); 
     }); 
    } 
    res.json({ 
     message: '201: Successfully added skill' 
    }); 

}); 
+0

Ok es funktioniert jetzt. – user3450754

+0

Ich habe die vollständige richtige Antwort auf meine erste Frage hinzugefügt. Aber ich werde deine Antwort auffrischen, weil es geholfen hat. – user3450754

+0

Minenlösung war für "Fehler: kann Header nicht festlegen, nachdem sie gesendet werden", und ich habe Ihnen das zur Verfügung gestellt. Wie Sie mit dem Code umgehen, ändern Sie später. Es ist die Lösung und Sie müssen es akzeptieren –

Verwandte Themen