我收到以下错误:
(node) warning: possible EventEmitter memory leak detected. 11 listeners added. Use emitter.setMaxListeners() to increase limit.
我使用节点js和websockets,websockets的目的是在将行插入我的sqlite3数据库期间制作了一个加载栏。
这是我的代码示例:
howMany = myDaneLenght
wss.on('connection', function connection(ws) {
ws.on('message', function incoming(message) {
console.log('Client: ', message);
});
ws.on('error', function (err) {
console.error('Found error: ' + err);
next(err);
});
for (let item in dane) {
db.serialize(function (err) {
if (err) next(err);
let stmt = db.prepare("INSERT INTO xxx (xxx, xxx, xxx, xxx...) VALUES (?,?,?,....?)");
let changeDate = new Date(dane[item].Data).toLocaleDateString();
let changeTermin = new Date(dane[item].Termin).toLocaleDateString();
stmt.run(changeDate, dane[item].xxx, dane[item].xxx.trim(), dane[item].xxx.trim(), dane[item].xxx.trim(), xxx.......);
stmt.finalize(function () {
result = parseInt(result) + 1;
ws.send('Inserting row number: ' + result + ' out of: ' + howMany);
});
});
};
//Closing db
db.close(function () {
console.log((Date.now() - start) + "ms");
//Closing websocket(?)
wss.close(function (err) {
if (err) next(err);
});
});
});
最重要的是错误不会总是触发!
例如,如果我第二次或第三次触发插入g,则会引发错误。
我认为是这条线造成的:
ws.send('Inserting row number: ' + result + ' out of: ' + howMany);
但出于在css / js中制作加载栏的目的,我需要在客户端上提供此信息。
有人可以帮助我解决该错误吗?我该如何解决?