我遇到了无法解决的节点模块问题。我有以下三个文件。我已经包含了感兴趣的基本方法,但排除了其余方法和方法的实际内容。
我正在努力解决的问题是,当从 events.js 节点对 event_queue 对象调用 publish_event 方法时,会崩溃并出现以下错误:
FATAL TypeError: Object # has no method 'publish_event', stack: TypeError: Object # has no method 'publish_event' at Events.publish_event (/Users/mburbidg/stormcloud/ccapi/cloud_pipes/node_modules/f5/server/services/event/ events.js:137:15)
我无法弄清楚这一点,您可以看到我可以在我们的系统中使用另一个模块 index.js 中的 EventQueue 对象的方法。我已经检查了几次其他明显的名字。
关于如何进行的任何建议?
文件 1 - f5/server/notifications/sqs_event_queue.js
function EventQueue() {
this.queue_name = 'notification_queue';
this.queue_url = null;
this.sqs = null;
}
EventQueue.prototype.publish_event = function(event_data, registration_id, log, callback) {
...
}
EventQueue.prototype.start = function(callback) {
...
}
module.exports = new EventQueue();
文件 2 - f5/server/index.js
var event_queue = require('f5/server/notifications/sqs_event_queue');
var start_notifications = function()
{
event_queue.start(on_start);
function on_start(error)
{
}
}
文件 3 - f5/server/services/event/events.js
var event_queue = require('f5/server/notifications/sqs_event_queue');
function Events () {
}
Events.prototype.publish_event = function(event_data, registration_id, log, callback) {
event_queue.publish_event(event_data, registration_id, log, callback);
};
module.exports = new Events();