2017-06-26 17 views
0

Jetzt sende ich Daten an Express-Server als Abfrageparameter. Aber ich sende die Daten an den Server als Payload. Wie sende ich Payload-Daten zum Express-Server? Und wie bekomme ich die Nutzdaten vom Express-Server? Kann jemand meine Zweifel klären?Senden und Get Payload in Express JS

Hier ist mein Code,

// http request code 

var http=new XMLHttpRequest(); 
http.open('post','localhost:9090/putData'); 
http.onload=function(){ 
    if (this.status >=200 && this.status <300){ 
     console.log(this.response); 
    } 
}; 
var payload = { 
    data: 'Something' 
} 
http.send(payload); 

// server.js 

app.use(bodyParser.json({limit: '50mb'})); 

app.use('/putData', function(req, res){ 
    console.log(req.body); // empty object printed 
}) 

Was in meinem Code falsch ist.

+0

Es ist nicht klar, was Sie fragen; Wenn Sie nur fragen, wie Sie in einer POST-Anfrage mit Dingen wie JSON umgehen, wird dies in praktisch jedem Express-Lernprogramm behandelt, da es so häufig vorkommt. Wenn Sie fragen, wie Sie es senden, hängt es davon ab, wie Sie es senden möchten. Wenn es sich um einen Browser handelt, ist dies auch in zahlreichen Tutorials dokumentiert. Wenn nicht, müssten Sie genauer sein. –

Antwort

0

Sie müssen vom Request-Objekt auf "body" verweisen. Je nach Typ können Sie es mit einem Parser deserialisieren. Ich verwende das npm-Paket 'body-parser', um meine Objekte nach json zu deserialisieren. Stellen Sie den Körper-Parser in der Express Middleware wie unten

app.use(bodyparser.json({limit: '50mb'})); 

Dann gezeigt können Sie das req.body Objekt in der folgenden requests` verwenden

app.get('getBody', function(req, res){ 
    console.log(req.body); 
    res.status(200); 
});` 
+0

Danke für die Antwort @franzke. Ich habe meine Frage bearbeitet. Was ist falsch in meinem Code? – Vasi

+0

Stellen Sie sicher, dass Sie das Paket 'body-parser' von npm installieren und es dann mit einer require-Anweisung einschließen, bevor Sie es verwenden var bodyparser = require ('body-parser') ;. Außerdem muss der Client möglicherweise den Content-Type-Header auf application/json setzen, um sicherzustellen, dass der Server den Body lesen kann. – franzke