nodejs req.body没有数据
时间: 2023-11-04 10:09:36 浏览: 157
nodejs body-parser 解析post数据实例
如果在 Node.js 中使用 `req.body` 获取 POST 请求的数据时出现为空的情况,可能有以下几个原因:
1. 没有引入相关的中间件。在使用 `req.body` 时需要使用像 `body-parser` 这样的中间件来解析 POST 请求的数据。
```javascript
const express = require('express');
const bodyParser = require('body-parser');
const app = express();
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
```
2. 请求头中没有设置合适的 `Content-Type`,导致请求体无法被正确解析。通常情况下,需要在请求头中设置 `Content-Type` 为 `application/json` 或 `application/x-www-form-urlencoded`。
```javascript
const axios = require('axios');
axios.post('/api', {
name: 'John Doe',
age: 25
}, {
headers: {
'Content-Type': 'application/json'
}
})
```
3. 请求体中没有数据,可以通过打印请求体来确认是否有数据。
```javascript
app.post('/api', (req, res) => {
console.log(req.body); // 如果输出为空,则说明请求体中没有数据
res.send('ok');
});
```
如果以上方法都不起作用,可以尝试使用其他的中间件或者检查请求体是否正确发送。
阅读全文