2017-01-30 2 views
2

Ich versuche, eine mehrteilige POST-Anfrage an meine API mit Superagent zu machen.Wie sende ich ein Objekt zusammen mit einer angehängten Datei in einer Multipart-Superagent-Anfrage?

Mein Code:

superagent 
    .post(apiUrl + '/api/company/profile/edit') 
    .field("profileData", profileData) 
    .attach('company_logo', logoFile) 
    .set('Accept', 'application/json') 
    .end(function(err, res){ 
    if(err){ 
     dispatch(updateProfileStatusAction("error", res)); 
    } else { 
     dispatch(updateProfileStatusAction("success", res)); 
    } 
    }); 

Das Problem, das ich habe ist, dass profileData ein Objekt, das verschachtelt ist. Als ich die Anfrage in der API bekommen sehe ich den Wert von profileData als String [Object, Object]

Als ich in der Dokumentation mehrt Anfrage aussehen mit Superagenten https://visionmedia.github.io/superagent/#multipart-requests es wie die .field() erscheint gemeint ist, sondern nur einen Schlüssel, Wert-Paar sein dann ein Objekt. Ich versuchte dann, .send ({profileData: profileData}) anstelle von field zu verwenden, aber wenn ich das tue, erhalte ich einen Fehler, der besagt, dass .attach und .send nicht zusammen in der gleichen Anfrage benutzt werden können.

Antwort

1

Ich denke, es sollte ausreichen, JSON.stringify() zu verwenden, um das JS_Object in eine JSON-Zeichenfolge zu konvertieren.

superagent 
.post(apiUrl + '/api/company/profile/edit') 
.field("profileData", JSON.stringify(profileData)) 
.attach('company_logo', logoFile) 
... 
Verwandte Themen