gpt4 book ai didi

javascript - TypeError : Object function. ....没有方法 'on'

转载 作者:行者123 更新时间:2023-11-30 12:54:20 26 4
gpt4 key购买 nike

我是 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);

在这里,我使用 v0.10.21 的 Node js。
即使我的模块文件包含 EventEmitter,我也无法找出为什么会出现此错误
谁能帮忙解决这个问题?

最佳答案

您正在导出函数而不调用它。你需要调用它:

var SetAstAppLog = require('astAppLog')();

编辑:我没有注意到您在脚本中调用了较低的函数。您应该将事件处理程序附加到实例,而不是构造函数。

var objCommLogger = new SetAstAppLog(logFolderPath, logCommFilePrefix, fileSize, logCommMsg);
objCommLogger.on(...);

关于javascript - TypeError : Object function. ....没有方法 'on',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19792832/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com