2017-11-14 1 views
1

すべてのリクエストに適用するパスなしでbeforeフィルタを設定しようとしています。 kotlinで私が書くしようとしている:before in Kotlin

before { req, resp -> 
    // check auth then redirect if not authorized... 
} 

コンパイラは言う:

このパラメータ(REQ & RESP)のための型を推論することはできません。

経路なしでKotlinのフィルターをどのように設定する必要がありますか?

+0

'before'の定義は何ですか? – ice1000

答えて

3

あなたはこのように、すべてのパスと一致するようにスパークでパス*を使用することができます。

before("*", { req, res -> 
    logger.info("${req.requestMethod().toUpperCase()} ${req.fullUri()} by ${req.ip()} (${req.userAgent()})") 
}) 

// or: 

before("*") { req, res -> // ... 
+1

関数の最後のパラメータがラムダ型の場合は、常に2番目の例を使用してください。 – marstran

+0

@marstranなぜですか? Afaikこれらは構文の違いだけで、それぞれが同じバイトコードになるため、開発者の好みに合わせて調整します – msrd0

+3

これは受け入れられたコードスタイルです – voddan