これは SO でよくある質問のようですが、すべての提案を試してみましたが、うまくいかないようです。一般的な解決策は、戦略的に配置されているようです。
process.setMaxListeners(0);
しかし、どこに置くべきか分からないようです。私のテストケースで起こっている:https://github.com/socketwiz/swblog/blob/master/test/contact.js
最初は問題ありませんでしたが、テスト ケースを追加し始めると、次のエラーが発生し始めました。
(node) warning: possible EventEmitter memory leak detected. 11 listeners added. Use emitter.setMaxListeners() to increase limit.
Trace
at process.EventEmitter.addListener (events.js:160:15)
at process.on.process.addListener (node.js:769:26)
at Object.module.exports [as shutdown] (/Users/socketwiz/Sites/swblog/node_modules/kraken-js/lib/middleware/shutdown.js:41:13)
at Object.proto._middleware (/Users/socketwiz/Sites/swblog/node_modules/kraken-js/lib/appcore.js:166:24)
at next (/Users/socketwiz/Sites/swblog/node_modules/kraken-js/lib/appcore.js:77:18)
at Object.configure (/Users/socketwiz/Sites/swblog/index.js:10:5)
at Object.proto._configure (/Users/socketwiz/Sites/swblog/node_modules/kraken-js/lib/appcore.js:85:28)
at Object.proto.init (/Users/socketwiz/Sites/swblog/node_modules/kraken-js/lib/appcore.js:35:14)
at create (/Users/socketwiz/Sites/swblog/node_modules/kraken-js/lib/appcore.js:258:13)
at Promise.apply (/Users/socketwiz/Sites/swblog/node_modules/kraken-js/node_modules/q/q.js:1122:26)
at Promise.promise.promiseDispatch (/Users/socketwiz/Sites/swblog/node_modules/kraken-js/node_modules/q/q.js:752:41)
at /Users/socketwiz/Sites/swblog/node_modules/kraken-js/node_modules/q/q.js:1337:14
at flush (/Users/socketwiz/Sites/swblog/node_modules/kraken-js/node_modules/q/q.js:108:17)
at process._tickDomainCallback (node.js:459:13)
失敗しているテストにコメントすると、別のテストに移動するだけなので、特定のテストではないようです。
それを修正しようとして、私は設定を試みました:
server.setMaxListeners(0);
ここ: https://github.com/socketwiz/swblog/blob/master/test/contact.js#L21
設定もしてみた
server.setMaxListeners(0);
ここ: https://github.com/socketwiz/swblog/blob/master/index.js#L15
しかし、私は運が悪いようです。どこに置くべきか、またはより良い解決策はありますか? ノード v0.10.26 を使用しています。私のプロジェクト全体は、参照用にここにあります: https://github.com/socketwiz/swblog
私が言える限り、すべてが機能しており、これは単なる警告ですが、ちょっと面倒です:(