使用节点9,然后表达4.我似乎无法显示正文数据。在检查了其他问题之后,大多数似乎都是使用bodyParser.urlencoded
来解决的,但这似乎对我没有帮助。我做错了什么?
server.js
const express = require('express');
const app = express();
var bodyParser = require('body-parser');
//not sure if i need urlencoded when just sending data from client
// app.use(bodyParser.urlencoded({ extended: false }))
// app.use(bodyParser.urlencoded({ extended: true}));
// app.use(bodyParser.urlencoded());
app.use(bodyParser.json());
const port = process.env.PORT || 8000;
const Cat = require('./Cat');
const Dog = require('./Dog');
app.route('/animals')
.get(function (req, res) {
console.log(res.body);
res.send({ Cat, Dog });
})
.patch(function (req, res) {
console.log('patch is working!');
console.log(req.body);
})
app.listen(port, () => console.log(`Listening on port ${port}`));
回复看起来像这样,现在我只是试图获得显示数据的补丁。 get call工作正常,而console.log'补丁正在运行'显示正在调用fetch,但是正在显示的正文中没有数据。
客户电话
fetch('/animals', { method: 'PATCH', body: {name: 'kitten'} })
答案 0 :(得分:0)
bodyParser.json()
只会在请求的Content-Type
与您使用的解析器匹配时解析正文,在本例中为application/json
。
您对PATCH
端点的请求需要在请求中包含Content-Type
。
答案 1 :(得分:0)
要求将来自反应的请求视为JSON。
fetch('/animals', {
method: 'PATCH', // POST
headers: {'Content-Type':'application/json'},
body: {
"first_name": 'kitten'
} })