Nœud.js/Express post de formulaire req.le corps ne fonctionne pas
j'utilise express et j'ai du mal à obtenir des données de forme à partir du bodyParser. Peu importe ce que je fais, il vient toujours comme un objet vide. Voici mon application générée par express.code js (la seule chose que j'ai ajouté a l'application.post route au bas de la page):
var express = require('express');
var app = module.exports = express.createServer();
// Configuration
app.configure(function(){
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(__dirname + '/public'));
});
app.configure('development', function(){
app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
});
app.configure('production', function(){
app.use(express.errorHandler());
});
// Routes
app.get('/', function(req, res){
res.sendfile('./public/index.html');
});
app.post('/', function(req, res){
console.log(req.body);
res.sendfile('./public/index.html');
});
app.listen(3010);
<!-Voici ma forme HTML:
<!doctype html>
<html>
<body>
<form id="myform" action="/" method="post" enctype="application/x-www-form-urlencoded">
<input type="text" id="mytext" />
<input type="submit" id="mysubmit" />
</form>
</body>
</html>
quand je soumets le formulaire, req.le corps est un objet vide {}
il vaut la peine de noter que cela se produit même si je supprime l'attribut enctype de la forme la balise
...Est-il quelque chose que je suis absent/fais de mal?
j'utilise le noeud v0.4.11 et express v2.4.6
2 réponses
<form id="myform" action="/" method="post" enctype="application/x-www-form-urlencoded">
<input type="text" name="I_appear_in_req_body" id="mytext" />
<input type="submit" id="mysubmit" />
</form>
le corps D'un post HTTP est un hachage clé / valeur de tous les contrôles de forme avec un name
l'attribut et la valeur est la valeur de la commande.
vous devez donner des noms à toutes vos entrées.
il est aussi dû au type de contenu. veuillez voir la console.log(req) de l'objet.
'content-type': 'application/json; charset=UTF-8’ // valid.
'content-type': 'application/JSON; charset=UTF-8’ // invalid & req.body would empty object {}.
pour vérifier le contenu Tapez par console.log(req.is ('json')) / / return true/false
je pense que 'charset=UTF-8' est négligeable en haut.