問題タブ [gorilla]
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.
go - ユーザーが 3 分以内に Go Web サーバーにデータを送信しない場合の Go セッションのタイムアウト
Go を使用して Web サーバーを構築します。ここで、ユーザー名とパスワードを使用してセッション ID をユーザー ログインに返したいと考えています。そして、ログイン手順は問題ないと思います。ユーザーは、データを投稿するたびにセッション ID を使用します。ただし、ユーザーのログイン後、ユーザーが 3 分以内にデータを送信しない場合、セッション ID が無効になるセッションを破棄しようとします。
ユーザーが3分以内にデータを投稿しない場合、どうすればセッションを期限切れにできますか。(私はbeegoを使用します。beegoにはセッションのタイムアウトがありますが、ポストデータ間隔に応じてタイムアウトになると記載されています)
ありがとう。
unit-testing - Golang での HTTP ルートのテスト
Gorilla mux と net/http パッケージを使用して、次のようにいくつかのルートを作成しています
これらのルートをテストするテストを作成しようとしています。たとえば、GET特に返されたルートをテストしようとし400ているので、次のテストコードがあります。
ただし、このテストを実行する404と、リクエストが正しくルーティングされていないことが原因であると考えられます。
この GET ルートをブラウザからテストすると、 が返される400ので、テストのセットアップ方法に問題があると確信しています。
go - Gorilla/Martini セッションが Cloud9 IDE 環境で機能しない
私は、Cloud9 IDE環境で Go Web アプリケーション開発を実験してきました。これまでのところ、 Gorillaセッション ( Martini Web フレームワークのセッションの基礎となるメカニズムでもあります) の使用に成功していません。ただし、まったく同じコードが他の環境でも正常に機能します。
問題を再現するには、Martini セッション アドオン (こちらを参照) から正確な「Hello World」スタイルのサンプル アプリをカット アンド ペーストします。この単純な例では、"/set" URL がセッションに値を配置し、"/get" URL が以前に設定された値を表示します。
Cloud9 IDE プロジェクトでは、「/get」URL を呼び出すと、コンソールに次のログが記録されます。
Gorilla を直接テストしようとすると、同様の結果が得られます。ただし、これとまったく同じソース コードを変更せずにローカル環境 (または Nitrous.IO クラウド環境) で実行すると、問題なく動作します。
Cloud9でGo Web開発を行っている人はいますか?この問題について何か洞察がありますか? ありがとう!
http - 既存のゴリラ セッションを取得する
ゴリラセッションを設定してから、値を再度取得しようとしています。私はちょうどテストとして次のことをしています。
これは、より大きな HTTP ハンドラーの抜粋です。しかし、関連する部分が投稿され、2 番目の呼び出しstore.Get()は既存のセッションではなく、新しいセッションを返します。したがって、このコードが含まれるハンドラが実行されると、ログ ステートメントがコンソールに出力されます。
この場合、すでに作成して保存したセッションではなく、新しいセッションを取得するのはなぜですか?
json - セッションと JSON データの両方を http.ResponseWriter に書き込む
セッションと一部のカスタム アプリ固有の json データの両方を、Go のクライアント フォーム net/http パッケージに送信することは可能ですか。
セッションにゴリラ/セッションを使用しています。値を保存した後、 func (s *CookieStore) Save(r *http.Request, w http.ResponseWriter, session *Session) エラーを呼び出す必要があります。
しかし一方で、このハンドラー関数は fmt.Fprintf(http.ResponseWriter, string(js)) によってクライアントに JSON データを送信する必要もあります。
これはどのように達成できますか?
go - Gorilla mux カスタム ミドルウェア
ルーティングの管理にゴリラマルチプレクサを使用しています。私が欠けているのは、すべてのリクエストの間にミドルウェアを統合することです。
例えば
すべての着信要求は、ミドルウェアを通過する必要があります。ここにミドルウェアを統合するにはどうすればよいですか?
アップデート
ゴリラ/セッションと組み合わせて使用します。彼らは次のように述べています。
重要な注意: gorilla/mux を使用していない場合は、ハンドラを context.ClearHandler でラップする必要があります。そうしないと、メモリ リークが発生します! これを行う簡単な方法は、http.ListenAndServe を呼び出すときに最上位のマルチプレクサをラップすることです。
このシナリオを防ぐにはどうすればよいですか?