问题描述
我知道这已经被多次询问了,但是我一直在寻找,仍然找不到我的问题的答案。
I know this has been asked multiple times, but I have been looking around and still can't find an answer to my problem.
这是我的代码,在定义路由之前,我确保使用和配置身份解析器。我只使用.json()与bodyParser,因为现在我只测试一个POST函数,但我甚至尝试使用app.use(bodyParser.urlencoded({extended:true}));
Here is my code, I make sure to use and configure body parser before defining the routes. I'm only using .json() with bodyParser because right now I'm only testing a POST function, but I've even tried with app.use(bodyParser.urlencoded({ extended: true }));
var express = require('express'),
bodyParser = require('body-parser'),
app = express();
app.use(bodyParser.json());
app.set('port', (process.env.PORT || 5000));
app.listen(app.get('port'), function() {
console.log("Node app is running at localhost:" + app.get('port'))
});
app.post('/itemSearch', function(req, res) {
//var Keywords = req.body.Keywords;
console.log("Yoooooo");
console.log(req.headers);
console.log(req.body);
res.status(200).send("yay");
});
以下是我如何使用邮递员测试此路由。
Here is how I use Postman to test this route.
这里是我收到的回复
Node app is running at localhost:5000
Yoooooo
{ host: 'localhost:5000',
connection: 'keep-alive',
'content-length': '146',
'cache-control': 'no-cache',
origin: 'chrome-extension://fhbjgbiflinjbdggehcddcbncdddomop',
'content-type': 'multipart/form-data; boundary=----WebKitFormBoundarynJtRFnukjOQDaHgU',
'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',
'postman-token': '984b101b-7780-5d6e-5a24-ad2c89b492fc',
accept: '*/*',
'accept-encoding': 'gzip, deflate',
'accept-language': 'en-GB,en-US;q=0.8,en;q=0.6' }
{}
在这一点上,我真的很感激任何帮助。谢谢。
At this point I would really appreciate any help. Thanks.
推荐答案
AFAIK需要使用Body-Parser:
AFAIK you need to use the Body-Parser : https://github.com/expressjs/body-parser
bodyParser = require('body-parser').json();
app.post('/itemSearch', bodyParser, function(req, res) {
//var Keywords = req.body.Keywords;
console.log("Yoooooo");
console.log(req.headers);
console.log(req.body);
res.status(200).send("yay");
});
然后尝试使用PostMan将身体设置为 raw
json:
Then try with PostMan setting the body as raw
json:
{
"test": "yay"
}
这篇关于Express + Postman,req.body是空的的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!