3

通过https://cloud.google.com/nodejs/getting-started/using-pub-sub工作时出现错误。(我已经成功地完成了该系列之前的教程。)

使用命令“SCRIPT=worker.js PORT=8081 npm start”,我收到与 background.js 相关的错误:

TypeError: Cannot call method 'on' of null
    at /Users/xke/Documents/node.js/6-pubsub/lib/background.js:57:20
    at /Users/xke/Documents/node.js/6-pubsub/node_modules/gcloud/lib/pubsub/index.js:256:7
    at /Users/xke/Documents/node.js/6-pubsub/node_modules/gcloud/lib/common/util.js:684:11
    at Object.handleResp (/Users/xke/Documents/node.js/6-pubsub/node_modules/gcloud/lib/common/util.js:192:5)
    at Request._callback (/Users/xke/Documents/node.js/6-pubsub/node_modules/gcloud/lib/common/util.js:679:12)
    at Request.self.callback (/Users/xke/Documents/node.js/6-pubsub/node_modules/request/request.js:354:22)
    at Request.EventEmitter.emit (events.js:98:17)
    at Request.<anonymous> (/Users/xke/Documents/node.js/6-pubsub/node_modules/request/request.js:1207:14)
    at Request.EventEmitter.emit (events.js:117:20)
    at IncomingMessage.<anonymous> (/Users/xke/Documents/node.js/6-pubsub/node_modules/request/request.js:1153:12)

想法/解决方案?

谢谢!

4

1 回答 1

1

看来这是gcloud-node库中的错误。该库应该会自动为您创建主题,但似乎存在一个边缘情况,即当您尝试订阅该主题时不会自动创建该主题。

与此同时,有一个简单的方法可以解决这个问题:运行书架应用程序并创建/编辑一本书。它将导致库创建主题。这是因为当您尝试发布到该库时,该库会正确地自动创建主题。之后,您应该能够无错误地运行工作程序。

或者,您可以修改background.js@subscribe以检查主题的存在并在必要时创建它。

于 2015-06-29T20:17:08.797 回答