【发布时间】:2019-04-08 22:39:30
【问题描述】:
我正在尝试将一些变量作为req.body 的一部分发布到 Firebase 云函数。我正在使用现代fetch() 语法如下:
const { licenseCode } = this.state;
fetch('https://myAPI.com/inputLicense', {
method: 'POST',
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify({ licenseCode })
})
这是我的云函数的外观:
exports.inputLicense = functions.https.onRequest((request, response) => {
// const { licenseCode } = request.body
console.log(request.get('content-type'))
console.log('query', request.query)
console.log('body', request.body)
})
不幸的是,在第一行的情况下,上述所有日志记录都会产生空对象或未定义。在通常的 Express 设置中,我知道我需要使用:
app.use(bodyParser.json()); // for parsing application/json
app.use(bodyParser.urlencoded({ extended: true })); // for parsing application/x-www-form-urlencoded
但不知道如何使用云功能。谷歌在他们的文档中声称他们会根据标题自动解析我的请求,但我就是无法让它工作。
欢迎任何帮助,提前致谢。
【问题讨论】:
-
您的 lambda 代码是正确的。您是否确定您发送的对象中确实存在某些内容?
-
我的另一个问题是:
request.rawBody中有什么东西 -
rawBody 在我的情况下是未定义的@MichaelMcQuade
标签: node.js express google-cloud-platform google-cloud-functions