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

0

有点晚了,但是这个包有助于从设置中生成所需的导入,如评论中所建议的:

https://hackage.haskell.org/package/imports

于 2017-09-26T13:26:11.740 回答