Node.js 如何访问来自GCP pubsub的单个请求参数作为云功能节点js的输入?
我正在node js中编写一个云函数,我的要求是GCP pubsub主题将json主体作为消息发布。此子主题是my node js cloud函数的触发点。这意味着每当我发布一条来自主题的消息时,它都会触发我的云功能。此功能按预期工作。但问题是,我试图访问云函数中Json请求数据的单个元素。如果我将来自pubsub的数据记录在我的云函数中,我就能够做到这一点。 我的index.jsNode.js 如何访问来自GCP pubsub的单个请求参数作为云功能节点js的输入?,node.js,google-cloud-platform,google-cloud-functions,publish-subscribe,google-cloud-pubsub,Node.js,Google Cloud Platform,Google Cloud Functions,Publish Subscribe,Google Cloud Pubsub,我正在node js中编写一个云函数,我的要求是GCP pubsub主题将json主体作为消息发布。此子主题是my node js cloud函数的触发点。这意味着每当我发布一条来自主题的消息时,它都会触发我的云功能。此功能按预期工作。但问题是,我试图访问云函数中Json请求数据的单个元素。如果我将来自pubsub的数据记录在我的云函数中,我就能够做到这一点。 我的index.js exports.helloPubSub = (data, context) => { const pub
exports.helloPubSub = (data, context) => {
const pubSubMessage = data;
const messageData = pubSubMessage.data
? Buffer.from(pubSubMessage.data, 'base64').toString()
: 'World';
console.log(`message data is, ${messageData}!`);
};
发布的子消息是:
{
"companyName": "my-company",
"companyLocation": "my-location"
}
当我试图从上面发布的消息访问云函数中的“companyName”时,我得到的日志输出是“companyName未定义”。下面是我正在尝试的代码:
exports.helloPubSub = (data, context) => {
const pubSubMessage = data;
const messageData = pubSubMessage.data
? Buffer.from(pubSubMessage.data, 'base64').toString()
: 'World';
console.log(`company name is, ${messageData.companyName}!`);
};
注:我指的是
我们将非常感谢您的回答。谢谢大家! 您无法访问
公司名称
,因为您试图从字符串
访问属性
要访问从PubSub发送的数据,需要使用JSON解析解码的字符串
请尝试以下代码:
exports.helloPubSub = (event, context) => {
const message = Buffer.from(event.data, 'base64').toString();
const messageData = JSON.parse(message)
console.log(`company name is, ${messageData.companyName}!`);
};
您无法访问
公司名称
,因为您试图从字符串
访问属性
要访问从PubSub发送的数据,需要使用JSON解析解码的字符串
请尝试以下代码:
exports.helloPubSub = (event, context) => {
const message = Buffer.from(event.data, 'base64').toString();
const messageData = JSON.parse(message)
console.log(`company name is, ${messageData.companyName}!`);
};
此解决方案正按照我的预期工作。此解决方案正按照我的预期工作。