firebase云函数发布请求正文

问题描述 投票:0回答:4

我正在以这样的角度形式发出 http 请求:

  this.http.post(this.endPoint, formData, { responseType: 'text' }).subscribe(
    res => {
      console.log(res);
    }
  )

我有一个简单的云功能:

const functions = require('firebase-functions');
const cors = require('cors')({ origin: true });

exports.test = functions.https.onRequest((req, res) => {

    cors(req, res, () => {
        const data = req.body;
        res.send(`Hello from Firebase! ${data}`);
    });

})

但是 req.body 不起作用,我得到了这个回复:

Firebase 向您问好! [对象对象]

知道为什么会发生这种情况吗?

node.js angular firebase google-cloud-functions
4个回答
9
投票

如果您尝试打印

req.body
值,您首先必须将其从 JavaScript 对象转换为字符串:

res.send(`Hello from Firebase! ${JSON.stringify(data)}`);

2
投票

我发现了问题:当我从 Angular 表单发布请求时,我在标题中添加了

'Content-Type': 'multipart/form-data'


2
投票

弗兰克的答案可能更接近您正在寻找的内容。

或者,如果您只想打印特定属性:

您正在使用模板文字将 req.body 注入字符串中。由于 req.body (或本例中的数据)是一个对象,因此您必须从中提取要显示的值,如

req.body.prop

Firebase 快速入门中的此示例显示了从请求正文中提取属性。


1
投票

尝试使用

const data = req.rawRequest.body;
看看是否有帮助

© www.soinside.com 2019 - 2024. All rights reserved.