[英]TypeError: Object function…has no method 'on'
我是node.js的新手並嘗試創建我的第一個模塊。 但我收到一個錯誤
TypeError: Object function SetAstAppLog.....has no method 'on'
我的模塊文件包含以下代碼:
var EventEmitter = require('events').EventEmitter;
var util = require('util');
module.exports = SetAstAppLog;
util.inherits(SetAstAppLog, EventEmitter);
function SetAstAppLog(logFolderPath,fileNamePrefix,fileSize,logStreamObject) {
EventEmitter.call(this);
.
.
.
.
this.emit('objCreated');
}
在app.js我正在做以下事情:
var SetAstAppLog = require('astAppLog');
var fileSize = 1024;
SetAstAppLog.on('objCreated', function () {
console.log('an object was created');
});
SetAstAppLog.on('written', function () {
console.log('Write operation completed.');
});
var objCommLogger = new SetAstAppLog(logFolderPath,logCommFilePrefix,fileSize,logCommMsg);
var objErrorLogger = new SetAstAppLog(logFolderPath,logErrorFilePrefix,fileSize,logErrorMsg);
在這里,我使用節點js與v0.10.21。
我無法找出為什么我收到此錯誤,即使我的模塊文件包含EventEmitter
任何人都可以幫忙解決這個問題嗎?
您正在導出該函數而不調用它。 你需要打電話給它:
var SetAstAppLog = require('astAppLog')();
編輯:我沒注意到你在腳本中調用了較低的函數。 您應該將事件處理程序附加到實例,而不是構造函數。
var objCommLogger = new SetAstAppLog(logFolderPath, logCommFilePrefix, fileSize, logCommMsg);
objCommLogger.on(...);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.