node.js - NodeJS GCP pubsub 发布错误:t.topic(...).publish 不是函数
问题描述
我正在尝试将数据从我的节点服务器写入触发 GCP 云功能的 pubsub 主题。我的代码或多或少直接来自GCP Pubsub 教程。
但是,我在发布时不断收到此错误:
(node:60085) UnhandledPromiseRejectionWarning: TypeError: l.topic(...).publish is not a function
at /Users/kb/Documents/coding/maple/dist/server.bundle.js:100:1697
at Layer.handle [as handle_request] (/Users/kb/Documents/coding/maple/node_modules/express/lib/router/layer.js:95:5)
at next (/Users/kb/Documents/coding/maple/node_modules/express/lib/router/route.js:137:13)
at Route.dispatch (/Users/kb/Documents/coding/maple/node_modules/express/lib/router/route.js:112:3)
at Layer.handle [as handle_request] (/Users/kb/Documents/coding/maple/node_modules/express/lib/router/layer.js:95:5)
at /Users/kb/Documents/coding/maple/node_modules/express/lib/router/index.js:281:22
at Function.process_params (/Users/kb/Documents/coding/maple/node_modules/express/lib/router/index.js:335:12)
at next (/Users/kb/Documents/coding/maple/node_modules/express/lib/router/index.js:275:10)
at SendStream.error (/Users/kb/Documents/coding/maple/node_modules/serve-static/index.js:121:7)
at SendStream.emit (events.js:182:13)
我已经确认没有消息发送到我的 Pubsub 主题,并且我的 GCP 功能没有被触发。
这是我的代码:
var processedData = processResultsData(data);
const dataBuffer = Buffer.from(processedData);
console.log("About to push to pubsub");
const messageId = await pubsub.topic(TOPIC_NAME).publish(dataBuffer);
console.log(`Message ${messageId} published.`);
解决方案
本教程适用于当前版本的节点客户端库 (0.24.1)。我的猜测是您安装了旧版本的客户端库。检查 package.json 中的版本,并将其设置为“最新”或“0.24.1”。
推荐阅读
- amazon-web-services - Step Functions,使用并行并选择由变量执行的步骤
- laravel - 加载组件的 Vue 和 Laravel 问题
- python - numpy:将扫描数据的单个二维数组重塑为 3 个二维数组
- database - pdf、docx、jpg的存储
- android - Android 视图覆盖。点击响应
- c++ - 编程中“重载”一词的真正含义
- console - 什么是 C++/WinRT 中的绝对路径
- sql - 如何从oracle sql中给出的月份和年份创建日期列?
- api - 为 GraphQL 突变建模
- javascript - 如何使用 isRequired 道具和 onclick 测试渲染或不渲染的子组件