問題タブ [node.js-domains]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
node.js - ドメインを持つノードで適切なエラー処理を行う方法は?
サードパーティのライブラリを使用しています。domain
エラー処理にノードを使用しています。そのサードパーティのライブラリに渡されたコールバック関数にエラーがある場合、コールバックを複数回呼び出すことになります。
コード例は次のとおりです。
このバグをサードパーティの lib に報告し、ソース コードを変更しました。お気に入り:
関数が複数回呼び出される問題が解決されました。しかし、最終的なコールバックが呼び出されることはありません。
node のこの動作を処理するには?
サードパーティの lib にコードを変更すると、アプリケーションがクラッシュします。ラッパードメインを置くことも役に立ちません。
node でそのような場合を処理する最良の方法は何ですか?
node.js - mocha で nodeJS をテストしているときにドメインがエラーを適切にキャッチしない
エラー処理にドメインを使用するテストを実行すると、ライブラリ内のドメイン ハンドラーがエラーをキャッチする必要がある場合でも、Mocha は依然としてエラーをスローしているように見えます。Mocha の外部でコードを実行すると、コードは正しく機能し、問題は Mocha にあると思われます。
例:
foo.js
test.js - 内部でスローされたエラーfoo.js
がドメインによってキャッチされていません。
script.js - ドメインによってエラーが適切にキャッチされ、バブルアップされています。
上記のように、ノードscript.js
が目的どおりに機能する場合、ドメイン ハンドラーによってエラーがキャッチされ、コードが続行されます。Mocha テスト内で同じコード ブロックを実行すると、エラーによってテストが停止し、失敗が発生します。これは、エラーが uncaughtException ハンドラーなどで送信されているためだと思います。もう 1 つの複雑な点は、関数呼び出しの周りに process.nextTick() がある場合、Mocha で適切に機能することです。これにより、Mocha は同期エラーのみを処理できず、非同期エラーでは正常に機能すると思われます。
ここでこの問題についての話があります: https://groups.google.com/forum/#!msg/nodejs/n-W9BSfxCjI/SElI1DJ_6u0Jおよびhttps://github.com/joyent/node/issues/4375。
私が混乱しているのは、この議論のすべてが、問題が数か月前に解決されたと述べているように見えることです。この問題の簡単な回避策、または他の人がこの時点で修正されたと信じているバグが修正されていない理由を知っている人は誰でも.
Windows 7 の CentOS 6.3 Vagrant VirtualBox でノード v0.10.18 と Mocha 1.13.0 を実行しています。
node.js - node.js でドメインをネストできますか?
同期エラーでは、次のようにエラー スコープをネストできます。
これは私が期待する方法ですが、そうではありません(ドメインエラーハンドラー内のエラーが上部にスローされ、その間のドメインをスキップしているようです):
これを正しく行う方法はありますか?
node.js - NodeJS ドメインと expressjs
ExpressJS の初心者の質問:
REST 要求に応答し、読み取り専用の DB 応答を行う、かなり単純な (しかし大規模な) ExpressJS プロジェクトを作成することを計画しています。エラーをキャプチャするための NodeJS ドメインについて読みましたが、このプロジェクトでそれが必要かどうかはわかりません。私のテストでは、キャッチされないスローやクラッシュが最悪の場合でも、サーバー全体ではなく、個々の REST 要求のみが失敗することが示されているようです。
私は正しいですか?NodeJS ドメイン API: http://nodejs.org/api/domain.html#domain_class_domain
(明らかに、私が尋ねる理由は、プロジェクトの最後にドメイン機能を事後的に実装するのが難しいからです)。
この記事では、必要がなければ Express に NODEJS を使用するという考えに冷たい感情を覚えました (必要がなければ、コードを複雑にしません)。
javascript - node.js ドメインを破棄する必要がありますか? いつ行うべきですか?
Express アプリがあり、受信したリクエストごとにドメインを使用しています。ミドルウェアを追加して、それ以上のミドルウェアがドメインの「内部」で実行されるようにしました。
また、リクエストの処理中に実行される一部のコードは、最初のリクエストへの参照を取得するために使用されます。これはヘッダー、Cookie などです。このコードに直接process.domain.req
渡すことはできません。req
この奇妙なコードは、実行場所がわからないクロス環境コード (ブラウザ用とノード用) の一種です。内部的には、一部のベース レイヤーは Node とブラウザー (特にネットワーク コード) で異なる方法で実装されています。request
ブラウザーの場合は XMLHttpRequest であり、NodeJS の場合はlibに基づくカスタム ラッパーです。
メモリリークが心配です。これreq
は、ドメインに保存されていることを参照しています。彼らはこれを保持して、ガベージコレクションを行わないようにすることはできますか?
また、定期的にドメインを破棄する必要がありますか? または、いくつかのエッジ/エラー ケースでドメインを破棄する必要がありますか?
node.js - Sencha Touch の Node.js への投稿エラー
クロスドメイン node.js から Sencha Touch で json を取得しようとしています
私のnode.jsコード:
ここでコードは正常に動作します: http://still-stream-9036.herokuapp.com/login
しかし、sencha touchで取得しようとすると、次のようになりました: