問題タブ [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.
node.js - Supertest/Superagent を使用して Strongloop の update メソッドをシミュレートするにはどうすればよいですか?
スーパーテストとモカを使用して、ストロングループ/ループバック API のいくつかのテストに取り組んでいます。標準エンドポイントの 1 つは Model/update です。Update は実際にはPersistedModel.updateAllの形式であり、クエリを受け取り、クエリに一致するすべてのエントリに投稿します。これは、成功したリクエストが Explorer でどのように表示されるかを示した図です。
図から、リクエスト URL は主に単なるクエリ文字列であり、204 を返すことに注意してください。superagent のドキュメントから、投稿でクエリを送信できることがわかります。ただし、これをテストで複製するのに苦労しています。これが私のrequireステートメントです:
ここに私のテストがあります
最初のテストは成功しました。つまり、リクエストのステータスとして 204 が返されましたが、2 番目のテストで失敗したということは、クエリが受け入れられることがわかったにもかかわらず、実際には更新が適用されなかったことを意味します。さまざまな処方を試しましたが、どれも効果がありませんでした。これをシミュレートする方法を教えてください!よろしくお願いします。
node.js - Superagent はセッション / Cookie 情報を実際のブラウザと共有します
バックエンド API サーバーの /login 機能をテストできるようにプログラムを作成します。スーパーエージェントを使用してサーバーにリクエストを送信すると、ログイン セッションが実際のブラウザ ログイン セッションとは関係がないことを除いて、すべて正常に動作します。
/login に POST すると、Cookie 値を設定するように指示する「Set-Cookie」フィールドを含む応答ヘッダーが表示されます。この Cookie を使用すると、バックエンド サーバーにログインしたままにすることができます。しかし、どうやらスーパーエージェントは POST /login が成功しても Cookie の値を設定しなかったようです。
では、セッション/クッキー情報をブラウザと共有するにはどうすればよいですか?
javascript - ajax (スーパーエージェント) 経由で PHP バックエンド (Laravel) にファイルを送信する
最近、私は自分のプロジェクトでスーパーエージェントをいじっていて、障害に遭遇しました。ajax 経由で Laravel PHP バックエンドにファイルを送信しようとしていますが、バックエンド側で何も受信できないようです。スーパーエージェントの「アタッチ」メソッドを使用してきましたが、成功しませんでした。
Javascript (ES6)
PHP バックエンドが受信したデータを確認すると、投稿されたファイルを除くすべての配列が取得されます。
どんな助けでも大歓迎です!
http - Beego POST リクエストの本文は常に空です
リクエストボディの値を解析するためのBeegoの便利なメソッドを使用しており、次のものがあります。
ルーターファイル:
コントローラーコード:
フロントエンド JS (スーパーエージェント):
スーパーエージェントのリクエストが発生すると、パスが正しく一致していることをログで確認できます。ただし、c.Ctx.Input.RequestBody
は常に空です。
Postman などのリクエストを発行するために他のものを使用しようとしましたが、役に立ちませんでした。GET リクエストでは、クエリ パラメータを正しく取得できます。
この問題の修正またはデバッグに役立つ手がかりや提案はありますか?
javascript - SuperAgent が行うすべてのリクエストにカスタム HTTP ヘッダーを挿入するにはどうすればよいですか?
SuperAgentがカスタム HTTP ヘッダーをサポートしていることは明らかです。
私の質問:
- npm を介して SuperAgent を取得している場合、SuperAgent が行うすべてのリクエストに独自の HTTP ヘッダーを挿入するにはどうすればよいですか?
- 注: 必要に応じて、SuperAgent を拡張する新しい npm パッケージを作成したいと思っています。
node.js - SailsJS と Superagent を使用した Mocha テストの実行
現在、SailsJS を使用してアプリを作成しています。これまでに行われたことは、「手動で」テストした場合は期待どおりに機能しますが、Mocha でテストした場合は機能しません。
SailsJS testing guideに従って、npm でテストを呼び出してみました。
私のテストディレクトリ構造は次のとおりです。
ブーストストラップ.test.js:
UserController.test.js:
最後に、 npm testを呼び出したときの出力は次のとおりです。
要約すると、私は auth/unauth API をテストしています。以下はポリシーです。
- ログインしているユーザーがログインしようとすると、「認証されていない」ポリシーがエラー (401) をスローする必要があります。
- ログインしているユーザーがサインアップしようとすると、「認証されていない」ポリシーがエラー (401) をスローする必要があります。
- ログアウトしたユーザーがログアウトしようとすると、「認証済み」ポリシーがエラー (401) をスローする必要があります。
私は何か間違ったことをしているかもしれませんが、それが何であるかは本当にわかりません。この問題を解決するのを手伝ってもらえますか?
さらに詳しい情報が必要な場合は、お問い合わせください。Githubでコードを見つけることができます (テストは失敗しているため、テストは含まれていません) 。
読んでくれてありがとう、良い一日を!
アップデート
elsaar のおかげで、コードを次のように変更しました。