問題タブ [node-request]

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 投票する
0 に答える
45 参照

node.js - ノード リクエストで zip ストリームが保存されない

node-webkit で、リモート ファイルをダウンロードして、ノードの実行可能ファイルと同じフォルダーに保存しようとしています (Windows)。

コンソール ログのダウンロードの進行状況はまったく問題ないように見えますが、完全に 0 になっています。ただし、ファイルは作成されず、close イベントは発生しません。

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

php - NodeJSのリクエストでフォームフィールドの配列をエンコードするにはどうすればよいですか?

フォーム フィールドに配列を配置する必要がある API を使用しています。与えられた例は PHP ですが、私は NodeJS を使用しています。API は、フィールドの 1 つが配列であることを想定していますが、これを行う方法を理解するのに苦労しています。

PHP の例は次のようになります。

NodeJSでは、これを試しました(とりわけ):


次のようにオブジェクトを渡そうとするとreference: {'line1':'foo'}、ノードからエラーが発生します。

この丸いペグをその四角い穴に押し込むにはどうすればよいでしょうか?

0 投票する
0 に答える
1299 参照

node.js - Node.jsリクエストモジュールをパイプに使用するとクローズイベントが機能しませんか?

現在、チャット アプリ用に 2 つの Node.js アプリを開発しています。最初のアプリはバックエンド ロジックを処理する API で、もう 1 つのアプリは API を使用するクライアント (Angular.JS のフロントエンド) です。

クライアント アプリは、HTTP リクエストを API にプロキシするためにリクエスト モジュールを使用しています。 -cors/ .

API (イベント ストリームにサブスクライブ):

API コードは機能しています。メソッド /api/xyz がクライアントによって呼び出されると、API のログに「start」が表示されます。

クライアント (HTTP リクエストを API にプロキシ):

クライアントコードもうまく機能します。ブラウザーのタブを閉じると、クライアント アプリのログに「閉じる」と表示されます。

ただし、ブラウザのタブを閉じると、API のログに「閉じる」というメッセージが表示されないという問題があります。API側でcloseイベントが検出されないため、APIで接続が閉じられることはありません。

誰かが理由を知っていますか?

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

node.js - イベント駆動型 Nodejs HTTP リクエストのスロットリング

net.ServerTCP ソケットでレガシー システムをリッスンするノードがあります。メッセージを受信すると、別の http サーバーに http 要求を送信します。簡略化すると、次のようになります。

問題は、ソケットが毎秒約 1000 回読み取り可能であることです。要求は、http サーバーを過負荷にします。ほとんどすぐに、数秒の応答時間が得られます。

Apache ベンチマークを実行すると、同時要求数を約 100 に制限した場合、http サーバーが 100 ミリ秒未満の応答時間で 1 秒あたり 1000 をはるかに超える要求を処理できることは明らかです。

だから私の質問は、イベント コールバック内で各リクエストが個別に起動されたときに、 request-promise(拡張子、、requestおよび) ライブラリを使用して未処理の同時リクエストを制限する最良の方法は何ですか?core.http.request

リクエストのドキュメントには次のように記載されています。

ループ内で複数のリクエストを送信し、複数の新しいプール オブジェクトを作成している場合、maxSockets意図したとおりに機能しないことに注意してください。これを回避するには、プール オプションで request.defaults を使用するかmaxSockets、ループの外でプロパティを使用してプール オブジェクトを作成します。

この段落が私の問題に対する答えを教えてくれていると確信していますが、それを理解することはできません. デフォルトを使用して、開いているソケットの数を制限しています。

これは役に立ちません。現時点ではキューを手動で管理することしか考えていませんが、従来の方法を知っていれば不要になると思います。

0 投票する
0 に答える
759 参照

json - ノード/エクスプレス ノード/リクエスト ストリーミング JSON オブジェクト

Node/Request を使用して JSON オブジェクトを取得し、応答をパイプして着信オブジェクトを処理し、さらに渡すノード アプリを実装しています。機能テストでは、Node/Express を使用して、JSON 配列を使用可能にする実際のエンドポイントをモックします。私の問題は、オブジェクトごとではなく、オブジェクトの配列全体が転送されることです。

これが消費者アプリです(簡略化):

テストでは

出力:

私の予想では、ResultStream は配列内の JSON オブジェクトごとに呼び出されますが、配列全体を受け取ります。私は何かを見逃しているか、何かを誤解していますか?

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

javascript - 新しいポートで実行されているアプリを確認する

特定のポートのリクエストを取得し、それを別のポートの新しいサーバーにプロキシするアプリケーションを作成する必要があります

たとえば、次のポート 3000 はポート 9000 へのプロキシになり、クライアントのユーザーが 3000 をクリックするため、実際には 9000 でアプリケーションを実行します (ボンネットの下)。

http://localhost:3000/a/b/c

http://localhost:9000/a/b/c

私は次のようなことを試します

  1. それを行う正しい方法はありますか?
  2. どうすればテストできますか? ポート 3000 でノード アプリケーションを実行すると、このポートが既に使用されているため、最初の URL をクライアントhttp://localhost:3000/a/b/cに入れることができないため、質問します。回避策はありますか?
0 投票する
1 に答える
53 参照

javascript - 時間以上のプロキシ リクエストでエラーが発生しました

新しいポートへの呼び出しをプロキシしたかったので、サーバー作成のすべてのロジックを次のような関数にカプセル化しました

プロキシリクエスト関数に次のコードを入れます

問題は、最初の呼び出しを行ったときに、プロキシが正常に動作していることを確認し、2 回目にブラウザをヒットしたときに新しいサーバー ポート 5000 でリッスンしていることです。エラーが発生しました。

どうすればこれを回避できますか