Ab Express 4.16.0 haben sich die Dinge erneut geändert . Sie können sie jetzt express.json()
und express.urlencoded()
genau wie in Express 3.0 verwenden .
Dies war ab Express 4.0 bis 4.15 anders :
$ npm install --save body-parser
und dann:
var bodyParser = require('body-parser')
app.use( bodyParser.json() ); // to support JSON-encoded bodies
app.use(bodyParser.urlencoded({ // to support URL-encoded bodies
extended: true
}));
Der Rest ist wie in Express 3.0 :
Zuerst müssen Sie Middleware hinzufügen, um die Post-Daten des Körpers zu analysieren.
Fügen Sie eine oder beide der folgenden Codezeilen hinzu:
app.use(express.json()); // to support JSON-encoded bodies
app.use(express.urlencoded()); // to support URL-encoded bodies
Verwenden Sie dann in Ihrem Handler das req.body
Objekt:
// assuming POST: name=foo&color=red <-- URL encoding
//
// or POST: {"name":"foo","color":"red"} <-- JSON encoding
app.post('/test-page', function(req, res) {
var name = req.body.name,
color = req.body.color;
// ...
});
Beachten Sie, dass die Verwendung von express.bodyParser()
nicht empfohlen wird.
app.use(express.bodyParser());
...ist äquivalent zu:
app.use(express.json());
app.use(express.urlencoded());
app.use(express.multipart());
Es bestehen Sicherheitsbedenken. Daher express.multipart()
ist es besser, die Unterstützung für die spezifischen Codierungstypen, die Sie benötigen, explizit hinzuzufügen. Wenn Sie eine mehrteilige Codierung benötigen (um beispielsweise das Hochladen von Dateien zu unterstützen), sollten Sie diese lesen .
bodyParser()
der die Antworten hier verwendet, sollte auch die Antwort von @SeanLynch unten