I’m writing the simplest server via Swift Express
And I want to add custom handler for “url not found” so that if user write “/notFoundUrl” he will see something like that: “Url “notFoundUrl” not found, please go to home page”.
I’ve added:
app.get("/:notFoundUrl+") { (request:Request<AnyContent>)->Action<AnyContent> in
print(request.params["notFoundUrl"])
return Action<AnyContent>.render("index", context: ["hello": "Page Not Found: " + request.params["notFoundUrl"]!])
}
But it’s not appropriate becouse:
So how to add custom “Page Not Found/404 handler” to Swift Express Server?
It much simpler than you are trying to do it.
/// Custom page not found error handler
app.errorHandler.register { (e:ExpressError) in
switch e {
case .PageNotFound(let path):
return Action<AnyContent>.render("404", context: ["path": path], status: .NotFound)
default:
return nil
}
}
The full do can be found here: https://github.com/crossroadlabs/Express/blob/master/doc/gettingstarted/errorhandling.md
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With