問題タブ [servemux]
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.
unit-testing - Golang での HTTP ルートのテスト
Gorilla mux と net/http パッケージを使用して、次のようにいくつかのルートを作成しています
これらのルートをテストするテストを作成しようとしています。たとえば、GET特に返されたルートをテストしようとし400ているので、次のテストコードがあります。
ただし、このテストを実行する404と、リクエストが正しくルーティングされていないことが原因であると考えられます。
この GET ルートをブラウザからテストすると、 が返される400ので、テストのセットアップ方法に問題があると確信しています。
http - Golang negroni と http.NewServeMux() の問題
以下のコードでサーバーを実行しています。
それは完全にうまく機能します。
しかし、bodmas.sum別のものでラップすると、http handler常に「ファイルが見つかりません」というメッセージが表示されます。フローはこのルートには行きません。
wrapper.RateLimitは以下のように定義されています。個別にテストすると、これは期待どおりに機能します。
エラーはありません。この動作に関する提案はありますか? それを機能させる方法は?
go - サブパス ルーティング用の Gorilla Mux
次のルートがあります。
ルートが増えるにつれて、管理が難しくなります。
私は次のようなことをしたい:
すべてのハンドラーが別のパッケージに分離されている
別のパッケージでこれらのパスを一致させる方法はありますか?
ありがとう、
go - curl リクエストを処理する Gorilla Mux
Gorilla mux を使用して API リクエストを処理したいと考えています。
コマンドは次のようになります。
curl http://0.0.0.0:8000/api/myapiname/v1?number=10&target=google.com&message=hello
そして、私は次のハンドラーを提供しています:
しかし、curlリクエストの場合、numbernottargetおよびmessageのフォーム値のみを取得します
Gorilla mux を使用して API リクエストを処理する正しい方法は何ですか? サブルーティングは必要ですか?
http://0.0.0.0:8000/api/myapiname/v1?number=10&target=google.com&message=helloフォームの http リクエストを受け取り、そのキーを値にマップできるようにしたいだけです
ありがとう!
http - ServerConn で ServeMux を使用するには?
私は Networking API を作成しており、人々がServeMuxを使用して特定のエンドポイントにリクエストをルーティングできるようにしたいと考えています。Serverインスタンスを使用する代わりに、独自の低レベルのServerConnを使用する必要があります。これは、着信 HTTP 要求とプレーン テキスト データの両方を同じポートから受信しているためです。
ただし、問題は、ServeMux を使用してリクエストを転送したい場合、ServeHTTPメソッドを使用することです。このためには、ResponseWriter を提供する必要がありますが、これは構造体ではなくインターフェイスであるため、インスタンスを作成する方法がわかりません。独自の ResponseWriter 構造体を作成する必要がありますか? Golang 標準ライブラリから提供されたものはありますか? または、これに対する別の解決策はありますか?
angularjs - URLがGoのどのパターンとも一致しない場合にファイルを提供する方法は?
Angular 2 と Go を使用してシングル ページ アプリケーションを構築しています。Angular ではルーティングを使用しています。たとえば のサイトを開くとhttp://example.com/、Go が私のindex.htmlファイルを提供してくれます。
これで、Angular にルートができました。たとえば、/postsです。それがデフォルト ルートの場合 (つまり、 が の場合useAsDefault) true、または手動で に移動した場合http://example.com/posts、Go から 404 エラーが発生します。これは、ハンドラーが指定されていないことを意味します。このパスのために。
多くのルートが存在する可能性があるため、単一の Angular ルートごとに Go でハンドラーを作成することは良い考えではないと思います。私の質問は、index.htmlリクエスト URL が自分で設定した他のパターンと一致しない場合、Goでどのようにサービスを提供できますServeMuxか?
http - http リクエストマルチプレクサとは何ですか?
私は golang を勉強してきましたが、多くの人がhttp.NewServeMux()関数を使用してサーバーを作成していることに気付きましたが、それが何をするのかよくわかりません。
私はこれを読みました:
では、ServeMux は HTTP リクエスト マルチプレクサです。各着信要求の URL を登録済みパターンのリストと照合し、URL に最もよく一致するパターンのハンドラーを呼び出します。
次のようなことをするのとどう違うのですか?
多重化を使用する目的は何ですか?
go - golang Gorilla CORS ハンドラーを機能させる
以下のコードで説明されているように、ここではかなり簡単なセットアップを行います。しかし、私はそれを機能させることができませんCORS。このエラーが発生し続けます:
XMLHttpRequest はhttp://localhost:3000/signupを読み込めません。プリフライト要求への応答がアクセス制御チェックに合格しません: 要求されたリソースに 'Access-Control-Allow-Origin' ヘッダーが存在しません。したがって、オリジン ' http://localhost:8000 ' へのアクセスは許可されません。応答には HTTP ステータス コード 403 がありました。
ここで単純なものが欠けていると確信しています。
ここに私が持っているコードがあります: