F # Saturn Framework: в чем разница между «получить» и «вперед»? - PullRequest
0 голосов
/ 15 мая 2019

например, следующий код в выражении вычисления маршрутизатора

get "/time" (warbler (fun _ -> System.DateTime.Now.ToString("HH:mm:ss") |> sprintf "Time now is %s" |> text))

, похоже, имеет тот же эффект, что и

forward "/time" (warbler (fun _ -> System.DateTime.Now.ToString("HH:mm:ss") |> sprintf "Time now is %s" |> text))

В обоих случаях текущее время отображается всякий раз, когдаклиент переходит на /time.

В каких ситуациях они будут отличаться?

1 Ответ

0 голосов
/ 15 мая 2019

вы можете указать любое значение HttpHandler для forward, поэтому меня не удивляет, что вы видите такое поведение.* * * * * * * * * * * * * * * * То, где forward становится действительно полезным, это для вложения целых вложенных элементов routers в определенный корень пути.В этом случае, forward гарантирует, что маршруты под дочерним путем совпадают только на участках маршрута.

Например, используйте следующую настройку:

let routerA = router {
 get "/foo" (text "hi")
}

let routerB = router {
 forward "/hi" routerA
}

В этом случаеполный путь к методу getA маршрутизатора будет /hi/foo, а не /foo.

...