2017-12-22 15 views
0

Ich benutze Ember.js neben einem Express-Webserver. Der Standard-JSONApi-Adapter ruft Update-Datensätze mit einer PATCH-Anforderung an den Server auf, der die Request Payload in der Anforderung an den Server festlegt.Wie bekomme ich die Anfrage Payload von einer PATCH-Anfrage in Express

Ich habe eine harte Zeit, dass die Daten aus dem Antrag auf meinem ausdrücklichen Server

Hier ist ein Beispiel Anfrage Ember an den Server sendet

enter image description here

Der entsprechende Code bekommt für die Express-Server sieht wie folgt aus

app.route('/tags/:id') 
    ... 
    .patch(tag.updateTag); 

// UpdateTag 

function updateTag(req,res) { 
    Tag.findById({_id: req.params.id}, (err,tag) => { 
    if(err) res.send(err); 
    Object.assign(tag, req.body).save((err,tag) => { 
     if(err) res.send(err); 

     res.json(TagSerializer.serialize(tag)); 
    }); 
    }); 
} 

Antwort

0

ich in der Lage war, diese Funktion zu erhalten. In Express verwende ich auch die jsonapi-serializer npm Modul zu tun, Serialisierung und Deserialisierung

Stellt sich heraus, ich meine Deserialisierung tun müssen, und darin Rückruf ist, die Daten zu verwenden, aktualisieren mit Rollen Augen

function updateTag(req,res) { 
    TagDeserializer.deserialize(req.body,(err,deserializedTag)=>{ 
    if(err){ 
     res.send(err); 
    } else { 
     Tag.findById({_id: req.params.id}, (err,returnedTag) => { 
     if(err) res.send(err); 
     Object.assign(returnedTag, deserializedTag).save((err,updatedTag) => { 
      if(err) res.send(err); 

      res.json(TagSerializer.serialize(updatedTag)); 
     }); 
     }); 
    } 
    }) 
} 
Verwandte Themen