【问题标题】:firebase cloud function post request bodyfirebase 云功能发布请求正文
【发布时间】:2019-06-13 12:54:03
【问题描述】:

我正在从这样的角度形式发出 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


    【解决方案1】:

    如果您尝试打印 req.body 值,您首先必须将其从 JavaScript 对象转换为字符串:

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

    【讨论】:

      【解决方案2】:

      Frank's answer 可能更接近您要查找的内容。

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

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

      This example from Firebase quickstart 显示将属性从请求正文中拉出。

      【讨论】:

        【解决方案3】:

        我发现了问题:当我从 Angular 表单发布请求时,我在标题中添加了 'Content-Type': 'multipart/form-data'

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2017-10-10
          • 1970-01-01
          • 2019-10-17
          • 2019-05-17
          • 1970-01-01
          • 2021-07-30
          • 1970-01-01
          相关资源
          最近更新 更多