POST请求中没有正文

时间:2017-06-28 12:09:13

标签: json node.js server

我正在开展网络推送通知项目。我想将用户订阅从我的客户端发送到节点服务器。

客户端代码

function sendSubscriptionToBackEnd(subscription) {
  return fetch('/api/save-subscription/', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json'
    },
    body: JSON.stringify(subscription)
  });
}

服务器端代码

app.post('/api/save-subscription/', function (req, res) {
  console.log(req.body);
}

订阅对象是具有“端点”和“密钥”的标准订阅。我已经尝试在发送之前在客户端打印订阅,它似乎是有效的。

问题是服务器端的“req”对象不包含任何“body”键。所以,我不知道如何在服务器端获取订阅。

1 个答案:

答案 0 :(得分:4)

如果您还没有body-parser中间件,则可能需要它。

是什么解析了http请求的主体,并为您提供了一个很好的解析对象来处理。

在服务器端代码中:

const bodyParser = require('body-parser');
const express = require('express');

const app = express();
app.use(bodyParser.json()); // <-- this guy!

app.post('/api/save-subscription', (req, res) => {
  console.log(req.body);
  return res.sendStatus(201);
});