問題タブ [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.

0 投票する
1 に答える
294 参照

node.js - ドメインを持つノードで適切なエラー処理を行う方法は?

サードパーティのライブラリを使用しています。domainエラー処理にノードを使用しています。そのサードパーティのライブラリに渡されたコールバック関数にエラーがある場合、コールバックを複数回呼び出すことになります。

コード例は次のとおりです。

このバグをサードパーティの lib に報告し、ソース コードを変更しました。お気に入り:

関数が複数回呼び出される問題が解決されました。しかし、最終的なコールバックが呼び出されることはありません。

node のこの動作を処理するには?

サードパーティの lib にコードを変更すると、アプリケーションがクラッシュします。ラッパードメインを置くことも役に立ちません。

node でそのような場合を処理する最良の方法は何ですか?

0 投票する
2 に答える
2835 参照

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 を実行しています。

0 投票する
1 に答える
625 参照

node.js - node.js でドメインをネストできますか?

同期エラーでは、次のようにエラー スコープをネストできます。

これは私が期待する方法ですが、そうではありません(ドメインエラーハンドラー内のエラーが上部にスローされ、その間のドメインをスキップしているようです):

これを正しく行う方法はありますか?

0 投票する
3 に答える
3661 参照

node.js - NodeJS ドメインと expressjs

ExpressJS の初心者の質問:

REST 要求に応答し、読み取り専用の DB 応答を行う、かなり単純な (しかし大規模な) ExpressJS プロジェクトを作成することを計画しています。エラーをキャプチャするための NodeJS ドメインについて読みましたが、このプロジェクトでそれが必要かどうかはわかりません。私のテストでは、キャッチされないスローやクラッシュが最悪の場合でも、サーバー全体ではなく、個々の REST 要求のみが失敗することが示されているようです。

私は正しいですか?NodeJS ドメイン API: http://nodejs.org/api/domain.html#domain_class_domain

(明らかに、私が尋ねる理由は、プロジェクトの最後にドメイン機能を事後的に実装するのが難しいからです)。

この記事では、必要がなければ Express に NODEJS を使用するという考えに冷たい感情を覚えました (必要がなければ、コードを複雑にしません)。

Node.js - 別のドメイン内の Express リクエストごとのドメイン

0 投票する
1 に答える
314 参照

javascript - node.js ドメインを破棄する必要がありますか? いつ行うべきですか?

Express アプリがあり、受信したリクエストごとにドメインを使用しています。ミドルウェアを追加して、それ以上のミドルウェアがドメインの「内部」で実行されるようにしました。

また、リクエストの処理中に実行される一部のコードは、最初のリクエストへの参照を取得するために使用されます。これはヘッダー、Cookie などです。このコードに直接process.domain.req渡すことはできません。reqこの奇妙なコードは、実行場所がわからないクロス環境コード (ブラウザ用とノード用) の一種です。内部的には、一部のベース レイヤーは Node とブラウザー (特にネットワーク コード) で異なる方法で実装されています。requestブラウザーの場合は XMLHttpRequest であり、NodeJS の場合はlibに基づくカスタム ラッパーです。

メモリリークが心配です。これreqは、ドメインに保存されていることを参照しています。彼らはこれを保持して、ガベージコレクションを行わないようにすることはできますか?

また、定期的にドメインを破棄する必要がありますか? または、いくつかのエッジ/エラー ケースでドメインを破棄する必要がありますか?

0 投票する
1 に答える
136 参照

node.js - Sencha Touch の Node.js への投稿エラー

クロスドメイン node.js から Sencha Touch で json を取得しようとしています

私のnode.jsコード:

ここでコードは正常に動作します: http://still-stream-9036.herokuapp.com/login

しかし、sencha touchで取得しようとすると、次のようになりました: