2

Scotty ベースのアプリケーションを構築しており、ディレクトリに含まれる動的ミドルウェアのリストをインポートして追加しようとしています。

ミドルウェアのリストをハードコーディングしたくありませんが、現在のところ、Index.hsすべてのディレクトリミドルウェアを公開するを使用しています。

私が持っているとしましょうMain.hs

import Controllers.Index (endpoints)
...

main :: IO ()
main = do
  port <- read <$> getEnv "PORT"
  scotty port $ do
         middleware logStdoutDev
         endpoints

次にControllers/Index.hs

module Controllers.Index
( endpoints ) where

import Controllers.Order (order)
import Controllers.User (user)
...
import Web.Scotty (ScottyM)

endpoints :: ScottyM ()
endpoints = order >> user >> ...

それぞれControllers/*.hsにミドルウェアが含まれています。

を取り除く最良の方法は何Controllers/Index.hsですか? ディレクトリからすべてのモジュールをインポートして、作業できるリストを取得する方法はありますか?

4

1 に答える 1