Ошибка публикации NodeJS GCP pubsub: t.topic (...). Publish не является функцией - PullRequest
0 голосов
/ 03 февраля 2019

Я пытаюсь записать данные с моего Node-сервера в раздел pubsub, который запускает облачную функцию GCP.Мой код более или менее извлечен прямо из учебника 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.`);

Ответы [ 2 ]

0 голосов
/ 20 августа 2019
let message = {
    id : `your-unique-id`,
    data : [ {"key", "value"} , {"otherKey", "otherValue"} ]
  }

  const dataBuffer = Buffer.from(JSON.stringify(message));
  const messageId = await pubsub.topic(topicName).publish(dataBuffer);
  console.log('published : ', messageId );
0 голосов
/ 12 февраля 2019

Учебное пособие подходит для текущей версии клиентских библиотек узла (0.24.1).Я предполагаю, что у вас установлена ​​старая версия клиентских библиотек.Проверьте, какая версия находится в вашем package.json, и установите для нее «последний» или «0.24.1».

...