Request.body是空对象

时间:2017-07-30 17:58:32

标签: javascript node.js google-cloud-functions fetch-api

从我的客户端,我正在使用这样的数据获取到我的Firebase node.js服务器上的webhook。

const url = 'https://us-central1-<app>.cloudfunctions.net/addUserdata';
const data = {
  firstName: 'John',
  lastName: 'Doe',
  email: 'john.doe@email.com'
}

const request = new Request(url, {
  method: 'POST',
  body: data,
  mode: 'no-cors',
  headers: new Headers()
});

fetch(request)
.then(function(result) {
    console.log(result);
})

我现在正试图抓住这些数据。

exports.addUserdata = functions.https.onRequest((req, res) => {
  console.log(req.body);
  res.send(200);
});

不幸的是我的req.body是一个空对象。我错过了什么或做错了什么?

2 个答案:

答案 0 :(得分:1)

JSONFormDataBlob对象或字符串传递给bodyRequest.body不期望JavaScript对象。

body: JSON.stringify(data)

答案 1 :(得分:0)

POST次请求时,您必须等待一段时间才能将数据导入request.body

    var body = '';
    req.on('data',function(data) { body += data; });
    req.on('end', function(data) {
        req.body = JSON.parse(body);
    });