
murvinlai
Hier ist mein einfaches Formular:
<form id="loginformA" action="userlogin" method="post">
<div>
<label for="email">Email: </label>
<input type="text" id="email" name="email"></input>
</div>
<input type="submit" value="Submit"></input>
</form>
Hier ist mein Express.js/Node.js-Code:
app.post('/userlogin', function(sReq, sRes){
var email = sReq.query.email.;
}
Ich habe es versucht sReq.query.email
oder sReq.query['email']
oder sReq.params['email']
usw. Keiner von ihnen funktioniert. Sie alle kehren zurück undefined
.
Wenn ich auf Get Call umstelle, funktioniert es, also .. eine Idee?

Vorliebe
Express v4.17.0
app.use(express.urlencoded( {extended: true} ))
app.post('/userlogin', (req, res) => {
console.log(req.body) // object
var email = req.body.email;
}
express.urlencodiert
Demo-Formular
Eine andere Antwort verwandt
In irgendeiner Form gegeben:
<form action='/somepath' method='post'>
<input type="text" name="name"></input>
</form>
Express verwenden
app.post('/somepath', function(req, res) {
console.log(JSON.stringify(req.body));
console.log('req.body.name', req.body['name']);
});
Ausgabe:
{"name":"x","description":"x"}
req.param.name x

Shivam Jha
Aktualisieren
Ab Express version 4.16+
ihre eigene Body-Parser-Implementierung ist jetzt im standardmäßigen Express-Paket enthalten, sodass Sie keine weitere Abhängigkeit herunterladen müssen.
Möglicherweise haben Sie Ihrem Code eine Zeile hinzugefügt, die wie folgt aussieht:
app.use(bodyparser.json()); //utilizes the body-parser package
Wenn Sie Express 4.16+ verwenden, können Sie diese Zeile jetzt ersetzen durch:
app.use(express.json()); //Used to parse JSON bodies
Dies sollte keine Breaking Changes in Ihre Anwendungen einführen, da der Code in express.json() auf bodyparser.json() basiert.
Wenn Sie auch den folgenden Code in Ihrer Umgebung haben:
app.use(bodyParser.urlencoded({extended: true}));
Sie können das ersetzen durch:
app.use(express.urlencoded()); //Parse URL-encoded bodies
Ein letzter Hinweis zur Vorsicht: Es gibt immer noch einige sehr spezifische Fälle, in denen body-parser
vielleicht immer noch notwendig, aber zum größten Teil Express
‘ Implementierung von Body-Parser ist alles, was Sie für die meisten Anwendungsfälle benötigen.
(Siehe die Dokumentation unter expressjs/bodyparser für mehr Details).

HILFE
aus offiziell Dokumentversion 4
const express = require('express')
const app = express()
app.use(express.json());
app.use(express.urlencoded({ extended: true }))
app.post('/push/send', (request, response) => {
console.log(request.body)
})
10108400cookie-checkZugriff auf POST-Formularfelder in Expressyes
SICHERHEIT: jeder mit
bodyParser()
Aus den Antworten hier sollte auch die Antwort von @ SeanLynch unten gelesen werden– FelipeAls
24. November 2013 um 20:06 Uhr