Die Dinge haben geändert wieder einmal anfangen Express 4.16.0 können Sie jetzt express.json()
y express.urlencoded()
genau wie in Express 3.0 .
Dies war verschiedene ab Express 4.0 bis 4.15 :
$ 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 :
Zunächst müssen Sie eine Middleware hinzufügen, um die Postdaten 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 die 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()
wird nicht empfohlen.
app.use(express.bodyParser());
...ist gleichbedeutend mit:
app.use(express.json());
app.use(express.urlencoded());
app.use(express.multipart());
Sicherheitsbedenken bestehen bei express.multipart()
Daher ist es besser, die Unterstützung für den/die von Ihnen benötigten Codierungstyp(en) ausdrücklich hinzuzufügen. Wenn Sie eine mehrteilige Kodierung benötigen (um z. B. das Hochladen von Dateien zu unterstützen), sollten Sie dies lesen .