POST请求返回未定义

时间:2019-06-22 10:18:37

标签: node.js express babel body-parser

当邮递员的请求以json如下所示时,我得到hello undefined作为响应。

请求json

{
"name":"test"
}

我的中间件

import express from 'express';
import bodyParser from 'body-parser';

const app = express();
app.use(bodyParser.json());

app.get('/hello', (req, res)=>{
  return res.send("hello");
});

app.post('/hello', (req, res)=>{
  console.log(req.body);
  return res.send(`hello ${req.body.name}`);
})

app.listen(8000, () => console.log('listening on port 8000'));

使用以下命令启动服务器

npx babel-node src/server.js

3 个答案:

答案 0 :(得分:2)

自Express 4.16.0起,您可以使用app.use(express.json());从请求中获取json数据,就您的情况而定。您不需要使用bodyparser和全部。

const app = express();
app.use(bodyParser.json()); // remove this
app.use(express.json())// add this line

答案 1 :(得分:1)

实际上问题与代码无关。发出请求的邮递员客户端未将其标记为application/json类型的请求。我纠正它后,它就按预期工作了。

答案 2 :(得分:0)

将bodyParser用作混合软件

const app = express();
app.use(bodyParser.urlencoded({ extended: true })); //add this
app.use(bodyParser.json());

app.post('/hello', (req, res)=>{
  console.log(req.body);
  name.push(req.body.name) // add this if you store in array 

  return res.send(`hello ${req.body.name}`);
})