問題タブ [superagent]
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.
express - mocha/express/supertest: 'エラー: done() が複数回呼び出されました'
モカとスーパーテストを使用して、エクスプレスでルートをテストしようとしています。残念ながら、リダイレクトをテストできないようです。
ここに関連するコードがあります
私のapp.jsにはこれがあります:
app.get('/', routes.index);
私の routes.index は次のようになります。
私のログインページは次のとおりです。
テストを実行すると、次のエラーが表示されます。実際には複数回実行されていると思われます。
関連する可能性のあるバグをいくつか調べて見つけましたが、それらはほぼ1年前のものであり、推奨される回避策に従っていますが、役に立ちません: https://github.com/visionmedia/supertest/issues/11#issuecomment-20251424 およびExpress で使用されるテスト スイート: https://github.com/visionmedia/express/blob/master/test/res.redirect.js ここで途方に暮れています。ありがとう
javascript - Mocha の before 関数内でログインしたエージェントを取得できません
私はmochaでログインプロセスをテストしていました。これが私のテストケースの例です
register
と関数の両方login
が正常に機能し、複数の前も期待どおりに定義の順序で実行され、最初register
にlogin
次にリクエストされました。しかし、3 番目before
の では、/verify
常にagent
ログインしていないと言います。
コードを次のように変更すると:
そして、今回agent
は期待通りに記録されました。それは奇妙だ。誰かが私を助けてくれることを願っています、ありがとう。
javascript - コンテンツの長さの node.js スーパーエージェント
POST リクエストを別のサイト (API) に送信しようとしています。私の要求:
request -スーパーエージェント、 memsPath、および img - イメージの変数です。
サーバーの応答は 411 です。コンテンツの長さが必要です。この長さを設定するにはどうすればよいですか?
node.js - スーパーエージェントとのキープアライブ接続
スーパーエージェントを使用してHTTPリクエストを別のサーバーBに発行するnode.jsサーバーAを実行しています。
サーバー B でリクエストを調査したところ、ヘッダーconnection
が次close
のとおりであり、httpVersion が1.1
次のとおりであることがわかりました。
これはにつながります:
ただし、ブラウザから同じサーバーにアクセスすると、次のようになります。
https://www.rfc-editor.org/rfc/rfc2616#page-172から keep-alive
、Connection: close
. _
だから、私の質問は次のとおりです。
- Superagent / Node.js がキープアライブ / 永続接続を使用しないようにリクエストを明示的に設定するのはなぜですか?
- Superagent / Node.js にキープアライブ接続を使用させるにはどうすればよいですか?
- 正確な動作にさらに影響を与えるにはどうすればよいですか (開いたままにする接続の数、タイムアウトなど)。
node.js - ノードjsで偽のセッションを使用してルートをテストする
サーバーにnode js + expressを使用しています。スーパーエージェント + ノード ユニットでテストを作成しています。ルートにアクセスするにはセッションが必要です。ルート/コントローラーをテストするためにこのセッションを偽造できますか? (スーパーエージェントにはこの機能がない可能性があるため、別のツールを提案してください)