F# Saturn Framework: в чем разница между "получить" и "вперед"?
Например , следующий код внутри выражения вычисления маршрутизатора
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 ответ
Решение
Вы можете поставить любой HttpHandler
в forward
так что меня не удивляет, что вы видите такое поведение. куда forward
становится действительно полезным для вложения целыхrouters
под определенным путем корень. В этом случае пересылка гарантирует, что маршруты под дочерним путем совпадают только на участках маршрута.
Например, возьмите эту настройку:
let routerA = router {
get "/foo" (text "hi")
}
let routerB = router {
forward "/hi" routerA
}
В этом случае полный путь к методу getA маршрутизатора будет /hi/foo
не /foo
,