Firebase云功能发布请求正文

时间:2019-01-19 14:00:06

标签: node.js angular firebase google-cloud-functions

我正在从这样的角度形式发出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,您好! [对象对象]

有什么想法为什么会发生吗?

3 个答案:

答案 0 :(得分:2)

如果您要打印<input type=file>值,则首先必须将其从JavaScript对象转换为字符串:

req.body

答案 1 :(得分:1)

Frank's answer可能更接近您要寻找的东西。

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

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

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

答案 2 :(得分:0)

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