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,

Другие вопросы по тегам