我正在使用Node and Express处理我的后端请求。我从前端拨打电话:
const newData = {id: sub, first_name: given_name, last_name: family_name, email: email}
const requestOptions = {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(newData)
}
fetch(`/add`, requestOptions)
.then(res => res.json())
.then(data => console.log(data))
.catch(console.log('error2'));
被我的“ / add”端点所接收。现在,我只想console.log
请求正文,所以我的终点是:
router.post('/add', (req, res) => {
res.setHeader('Access-Control-Allow-Origin', 'http://localhost:3000');
console.log(req.body, 'hit')
})
但是服务器控制台日志以{} 'hit'
的形式出现。使用“网络”标签时,我可以看到该请求的有效负载包含id, first_name, last_name, and email
。
任何人都可以告诉我将数据放入服务器所缺少的内容。
我的服务器也这样设置了body-parser
:
const bodyParser = require('body-parser');
const app = express();
app.use(
bodyParser.urlencoded({
extended: false,
})
);
答案 0 :(得分:2)
在发送application/json
内容类型时,应使用bodyParser.json()
而不是bodyParser.urlencoded({ extended: false })
。
例如:
const bodyParser = require('body-parser');
const app = express();
app.use(bodyParser.json())