我一直在使用 Express.js 和 body-parser
模块将表单解析到服务器。然而,当接收到内容时,res.body
它只是显示为一个空对象。
app.js:
var express = require("express");
var app = express();
var bp = require("body-parser");
app.set('views', __dirname + '/views');
app.use(bp.json());
app.use(express.static(__dirname + '/public'));
app.get('/', function (req, res) {
res.render('index.jade');
});
app.post('/', function (req, res) {
console.log(req.body);
});
app.listen(process.env.PORT || 5000);
形式( Jade ):
form(method="post", action="/", enctype="application/json")
input(type="text", name="name", placeholder="input your name")
为什么会这样以及如何解决?
最佳答案
bodyparser.json()
仅解析包含 JSON 数据的请求。您需要使用bodyparser.urlencoded()
:
app.use(bodyParser.urlencoded({extended: false}))
extend: false
表示不处理嵌套值,例如foo[bar]=baz
。如果您想支持嵌套值,可以将其切换为 true。
关于javascript - 快速表单解析不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24790536/