ラックアップファイルのuse
とrun
の違いは何ですか? run
は常にconfig.ru
の末尾にあるようですが、use
を使用できるように見えます。啓発的な資源も非常に高く評価されるだろう。ラックでの使用と実行の違い
7
A
答えて
1
use
は、ミドルウェアのため
class MyCustomMiddleware
def initialize(app)
@app = app
end
def call(env)
if condition
env['set-header'] = 'Middleware Can modify the response & pass it into next middleware'
end
@app.call(env)
end
run
は、呼び出しに応答し、use
の違いを理解するには200
class MyApp
def self.call(env)
[200, { "Content-Type" => "text/html" }, ["OK"]]
end
end
のようなHTTPレスポンスコードで、最終的なラックレスポンスを返す引数を取るされ& run
。典型的なラックアプリの構造を見ることができます。
典型的なラックアプリ ラックアプリcall
に応答するが、最終ラック応答&をHTTP応答コード(200404を含む最終的なラック応答を返すcall
に応答オブジェクトを返さない複数のミドルウェア(単数または複数)を含む、500等)。典型的には、ミドルウェアとして機能する複数のオブジェクトが存在し、応答コードで最終ラック応答を返すオブジェクトが&になります。これで今use
& run
、 間
違い、それは我々が一度だけ、単一のラックAppの各ミドルウェア& run
のために一度、use
を複数回呼び出すことができそうです。 use
はミドルウェアを呼び出すだけで、run
はラックオブジェクトを実行し、最終的なラック応答をHTTPステータスコードで返します。場合
例config.ru
use MyCustomMiddleware
use MyCustomMiddleware2
use MyCustomMiddleware3
run MyApp
上記の何が間違っている場合は、私に教えてください。だから私はそれを修正することができます。
関連する問題
- 1. デバッグと実行の違い
- 2. 使用の違いと実現関係の違いumlインターフェイス
- 3. Androidで実行中のタスクと実行中のプロセスの違い
- 4. ラック使用時のRMagickのバスエラー?
- 5. コトルでの実行と実行の違い
- 6. エミュレータでの実行と実際のデバイスでの実行の違い
- 7. ラックとイベントマシンを使用したWebSocketとRailsの統合
- 8. ラック1.3とレールの併用3.0.9
- 9. VSコードの実行とコードファイルの違い
- 10. 実行アプリケーションと実行中のGrailsの動作の違い
- 11. Gradleの用語の評価と実行の違い
- 12. スレッド#実行とスレッド#ウェイクアップの違いは?
- 13. コマンドラインrunasと右クリック実行の違い
- 14. ファイルエクスプローラ(Windowsエクスプローラ)と実行コマンドの違い
- 15. Swift 3:DispatchQueue.main.async {}とDispatcQueue.main.async(実行:{})の違い?
- 16. 実行ターボの違いと視覚
- 17. ラックとrack.request.form_vars/rack.request.form_hash
- 18. 実行計画と実行計画の違い
- 19. - '' の使用の違いと ""
- 20. ERBは、私が使用してERBメソッドを使用するとラックのApp
- 21. SQLクエリを使用して実行されたハイバネートトランザクションとデータベーストランザクションの違い?
- 22. ラックのキャサンドラ
- 23. npm実行監視とnpm実行の違いは何ですか?
- 24. 実行するサーバー側のレンダリングをローカルと実際のNodeJSサーバー(IBM Bluemix)で実行するのとの違い
- 25. Playの実行と開始の違いは何ですか?
- 26. asInvokerとhighestAvailableの実行レベルの違いは何ですか?
- 27. ジェンキンズのgroovyスクリプトと実行系grovyスクリプトの実行の違いは?
- 28. ラック/レールでのHTTP/2サポート
- 29. mpirunのあるプログラムとないプログラムの実行の違い
- 30. 使用とnsマクロでの使用の違い
ミドルウェアのパイプラインを、認証エラーなどによって停止させることはできますか? – Cenoc
^^^はい。実際には、似たようなauthの方法がワーデンによって使用されています - ラックベースの認証であり、deviseのようなすべての人気のある宝石が使用します。あなたは[呼び出し方法のソース](https://github.com/hassox/warden/blob/master/lib/warden/manager.rb#L30-L49)を見ることができます。そのコアでは、#callメソッドは単に条件付きのものをチェックして何かをしているだけです。私の例のABOVEと同じです。 – CuriousMind