我正在尝试使用Express(4.13.3版本)进行POST。当我打印request.body.user时,它说' undefined'。我正在使用Chrome Poster发布我的JSON请求。以下是我的请求的外观
{
"user":"testUser",
"password":"test pwd"
}
我使用的网址:http://localhost:4000/first
和我的server.js文件。
var express = require('express');
var bodyParser = require('body-parser');
var app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.post('/first', function (request, response) {
console.log('FIRST POST hello world');
console.log('req.body:' + request);
var user_name=request.body.user;
var password=request.body.password;
console.log("User name = "+user_name+", password is "+password);
response.end("yes");
});
var server = app.listen(4000, function() {
var host = server.address().address;
var port = server.address().port;
console.log('Example app listening at http://%s:%s', host, port);
});
当我发布请求时,这是我在Node控制台上看到的内容。
Example app listening at http://:::4000
FIRST POST hello world
req.body:[object Object]
User name = undefined, password is undefined
为什么我无法让我的用户'和密码'这里的价值来自我的要求?我得到了未定义的'对于这两个变量。
答案 0 :(得分:1)
试试这个:
app.use(bodyParser());
如果仍然无效,请将此请求更改为:
user=testUser&password=test+pwd
请求机构必须使用Chrome"高级REST客户端"。