我将以下JSON字符串发送到我的服务器。
(
{
id = 1;
name = foo;
},
{
id = 2;
name = bar;
}
)
在服务器上有这个。
app.post('/', function(request, response) {
console.log("Got response: " + response.statusCode);
response.on('data', function(chunk) {
queryResponse+=chunk;
console.log('data');
});
response.on('end', function(){
console.log('end');
});
});
当我发送字符串时,它显示我得到了一个200响应,但其他两个方法从未运行。为什么呢?
@Daniel Thompson提到他忘记在请求中添加{"Content-Type": "application/json"}。他能够更改请求,但是,更改请求并不总是可能的(我们在这里工作在服务器上)。
在我的情况下,我需要强制content-type: text/plain被解析为json。
如果您无法更改请求的内容类型,请尝试使用以下代码:
app.use(express.json({type: '*/*'}));
而不是全局使用express.json(),我更喜欢只在需要的地方应用它,例如在POST请求中:
app.post('/mypost', express.json({type: '*/*'}), (req, res) => {
// echo json
res.json(req.body);
});
@Daniel Thompson提到他忘记在请求中添加{"Content-Type": "application/json"}。他能够更改请求,但是,更改请求并不总是可能的(我们在这里工作在服务器上)。
在我的情况下,我需要强制content-type: text/plain被解析为json。
如果您无法更改请求的内容类型,请尝试使用以下代码:
app.use(express.json({type: '*/*'}));
而不是全局使用express.json(),我更喜欢只在需要的地方应用它,例如在POST请求中:
app.post('/mypost', express.json({type: '*/*'}), (req, res) => {
// echo json
res.json(req.body);
});