このエラーは、不協和音ボットを3〜4時間ほど長くオンラインにした場合にランダムに表示されますが、時々エラーが発生することがあります。それは本当に私を悩ませています。
events.js:188
throw err;
^
Error: Unhandled "error" event. ([object Object])
at Client.emit (events.js:186:19)
at WebSocketConnection.onError (D:\BasementMonster\node_modules\discord.js\src\client\websocket\WebSocketConnection.js:374:17)
at WebSocket.onError (D:\BasementMonster\node_modules\ws\lib\event-target.js:128:16)
at emitOne (events.js:116:13)
at WebSocket.emit (events.js:211:7)
at _receiver.cleanup (D:\BasementMonster\node_modules\ws\lib\websocket.js:211:14)
at Receiver.cleanup (D:\BasementMonster\node_modules\ws\lib\receiver.js:557:13)
at WebSocket.finalize (D:\BasementMonster\node_modules\ws\lib\websocket.js:206:20)
at emitOne (events.js:116:13)
at TLSSocket.emit (events.js:211:7)
at emitErrorNT (internal/streams/destroy.js:64:8)
at _combinedTickCallback (internal/process/next_tick.js:138:11)
at process._tickCallback (internal/process/next_tick.js:180:9)
回答 2 件
次のようなエラー処理イベントを追加する必要があります:
client.on('error', console.error);
関連記事
- NodeJSとMYSQLを使用したDBレコードの削除中にエラーが発生しました
- nodejs postmanでObjectIdにキャストエラーが発生しましたが、変数を使用していません。ルートをテストしているだけです。
- 新しいError( 'record not found')ステートメントをスローする際のNodejsとMongooseのエラー
- nodejsマングースエラーTS2551:プロパティ 'isDeleted'はタイプ 'Document'に存在しません。 '$isDeleted'という意味ですか
- Eclipseで「nodejsが見つかりませんでした」というエラー
- イベントwsnodejsの前にメッセージを処理する
- LinuxでのみNodeJSrmdir関数エラー?
- firebase関数未処理のエラーRangeError:最大コールスタックサイズを超えました
私は自分のコードでしばらくこの問題に取り組みました。主な問題は、トレースがまったく役に立たないことです。そして エラーがまれにしか発生しないため、「ターミナルで実行して待機」を無駄なタスクにしています。最終的に、Discord.jsクライアント自体がエラーをスローしていることを理解することができました-これは私が読んだどのドキュメントにも記載されていなかったため、ハンドラーがありませんでした-そしてこのoopsieはDiscord.jsパッケージ自体、トレースでポイントするコードには行がありませんでした。
コードのどこかに存在する必要があるのは、
もちろん、これは、Clientオブジェクトが何であれ、エラー処理が必要なものに合わせて調整されます。 私が知る限り、この特定のトレースはインターネット接続が失われたことに由来するため、記録したいので、console.log()の代わりに、イベントをログファイルに書き込む独自のカスタム関数を呼び出しましたタイムスタンプ付き。
ボットのインスタンスを実行してインターネット接続を強制終了することでこれをテストすると、ログ機能が機能するだけでなく、Discord.jsがボットのセッションを自動的に復元したことがわかりました。 (あなたのマイレージは異なる場合があります。)