node.js - 从云函数内的请求正文访问各个字段
问题描述
我正在向包含以下正文的云函数发送发布请求:
{message: "this is the message"}
如果我尝试打印请求的整个正文,它会显示它,但如果我尝试获取该message
字段,我会undefined
进入控制台。
这是我的功能:
exports.myCloudFunction = functions.https.onRequest((req: any, res: any) => {
console.log(req.body)\\prints the body of the request fine
console.log(req.body.message)\\prints "undefined"
cors(req, res, () => {
const pl = req.body.message;
console.log(pl);\\prints "undefined"
});
return res.send("all done")
});
解决方案
我个人以前没有使用过firebase,但是从您的代码和req.body
打印正文的事实来看,您可能需要将请求正文解析为json才能访问该message
属性:
const body = JSON.parse(req.body);
console.log(body.message);
您也可能需要为json
内容设置 bodyparser。在普通的 express-app 中,您可以使用以下方法执行此操作(请注意,您不再需要使用 bodyparser 从上面手动解析):
const bodyParser = require('body-parser');
app.use(bodyParser.json();
编辑:请参阅 Doug 的回答以了解正确的方法,即修复您的请求并将内容类型设置为application/json
,以便 Cloud Functions 自动解析和填充req.body
请求正文。
推荐阅读
- c# - 如何通过 C# 或直接从数据库中从 SQL Server 查询的结果中插入批量记录到 SQLite 表中
- javascript - 如何在javascript中的querySelector()的标签中包含输入?
- ios - Objective-c 中的推送通知
- dojo - 使用 Intern.js 进行功能测试:getVisibleText() 不适用于 dijits
- vapor - 在命令中访问数据库
- javascript - 如何使用 javascript 读取 txt 文件并将内容复制到谷歌电子表格文件中
- python - 获取“GLib-GIO-Message:使用‘内存’GSettings 后端。您的设置将不会被保存或与其他应用程序共享。” 蟒蛇错误
- office-js - Office.context.ui.messageParent 在第二次打开对话框时失败
- javascript - ES6:有没有办法在一个语句中导入和赋值?
- python - 如何在 matplotlib 中显示具有多标记、多颜色的数据