我正在使用简单的文本输入对'/'发送请求,并期望看到在req.body.course中输入的数据。当控制台记录req.body.course时,我得到一个空对象。
HTML
<html>
<head><title>New Course</title></head>
<body>
<form id="myform" action="/" method="post">
<input type="text" name="course" id="mytext" />
<input type="submit" id="mysubmit" />
</form>
</body>
</html>
服务器
var express = require('express');
var bodyParser = require('body-parser');
var app = express()
app.use(bodyParser.json())
app.set('views', __dirname + '/views');
app.engine('html', require('ejs').renderFile);
app.set('view engine', 'html');
app.post('/', function (req, res) {
var course = req.body.course;
res.send(course);
});
app.get('/', function (req, res) {
res.render('index');
});
app.listen(4000, function() {
console.log("Server is listening on port", 4000);
});
REQ.BODY的输出
{}
答案 0 :(得分:1)
尝试
app.use(bodyParser.urlencoded())
答案 1 :(得分:1)
你必须告诉标题你的请求的MIME类型是什么 只需添加请求。
Content-Type='application/json'
答案 2 :(得分:0)
尝试添加使用Urlencoded的中间件。
app.use(bodyParser.urlencoded())
或
app.use(bodyParser.urlencoded({
extended: true
}))
由于您的请求格式为urlencoded,因此它将解析URL编码的正文。
您可以参考bodyparser urlencoded文档。