node.js - Google Cloud PubSub - 似乎无法获取主题

标签 node.js heroku google-cloud-platform google-cloud-pubsub gcloud-node

我正在使用heroku运行一个node.js应用程序,该应用程序使用gcloud创建一个主题,然后订阅它。我正在使用以下代码,取自此处:https://googlecloudplatform.github.io/gcloud-node/#/docs/v0.16.0/pubsub

var gcloud = require('gcloud')({
  keyFilename: 'pubsub_key.json',
  projectId: 'pipedrivesekoul'
});

var pubsub = gcloud.pubsub();

//create a new topic
pubsub.createTopic('projects/pipedrivesekoul/my-new-topic', function(err, topic, apiResponse) {
  var topic = pubsub.topic('my-new-topic');
  topic.publish({
    data: 'New message!'
  }, function(err) {console.log});
});

  var topic = pubsub.topic('my-new-topic');



// Without specifying any options.
topic.subscribe('newMessages', function(err, subscription, apiResponse) {});

var alltopics = pubsub.getTopics({}, function(err, topics, nextQuery, apiResponse) {});

console.log(pubsub.getTopics({}, function(err, topics, nextQuery, apiResponse) {}));

但是,当我在 Heroku 上部署(https 服务器,在 Google Console 上注册,部署了正确的 API 并在 json 文件中添加了适当的 key )时,它没有看到主题列表,而是返回“未定义”:

2015-07-24T18:06:05.321079+00:00 app[web.1]: undefined

2015-07-24T18:06:05.337947+00:00 app[web.1]: Node app is running on port 36252

不确定为什么会发生这种情况,也不太确定如何调试此问题。任何建议将不胜感激!

最佳答案

我发现了几个问题,希望能解决这个问题。

pubsub.createTopic('projects/pipedrivesekoul/my-new-topic'

您只需提供my-new-topic部分。丑陋的长标题会自动发送。

console.log(pubsub.getTopics({}, function(err, topics, nextQuery, apiResponse) {}));

这实际上是记录调用的结果

pubsub.getTopics({}, function(err, topics, nextQuery, apiResponse) {})

这是未定义的。相反,请尝试:

pubsub.getTopics({}, function(err, topics, nextQuery, apiResponse) {
  if (err) {
    console.error(err);
    return;
  }

  console.log(topics); // hopefully in this array is one called `my-new-topic`
});

关于node.js - Google Cloud PubSub - 似乎无法获取主题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31617307/

相关文章:

node.js - 是否可以使用node.js在服务器端运行dc.js?

node.js - 仅需要从所需的 commonjs 模块中导出特定内容

Golang Oauth2 服务帐户返回空刷新 token 字符串

google-cloud-platform - 我们可以安排 StackDriver Logging 导出日志吗?

database - Heroku:最好为每个应用程序配备一个专用数据库,还是为所有应用程序配备一个专用数据库?

python - 使用 AVRO 格式的 BigQuery 流式插入

node.js - 如何在 Electron-Angular 项目中使用 forever-monitor?

node.js - 在 Node.js 中,我如何使用集合作为索引以编程方式从 Redis 数据库中检索许多哈希

Node.js:简单的应用程序无法在 Heroku 上运行

javascript - Express.js 重定向到 HTTPS 并发送 index.html