Avatar
Kishikawa Katsumi 10/6/2020 7:31 PM
final class ErrorMiddleware: Middleware { func respond(to request: Request, chainingTo next: Responder) -> EventLoopFuture<Response> { return next.respond(to: request).flatMapError { (error) in let headers: HTTPHeaders let status: HTTPResponseStatus let reason: String let title: String switch error { case let abort as AbortError: headers = abort.headers status = abort.status title = "Not Found" reason = status == .notFound ? "Sorry, an error has occured, Requested page not found!" : abort.reason default: headers = [:] status = .internalServerError title = "Internal Server Error" reason = "Something went wrong." } return request.view.render("error", [ "title": title, "status": "\(status.code)", "reason": reason, ]) .encodeResponse(status: status, headers: headers, for: request) } } } ミドルウェアはとりあえずこんな感じにしました。
7:32 PM
error.leaf っていうテンプレートがあって、タイトルとかが変わります。
7:33 PM
だんだんわかってきた。Vaporと結構格闘したからある程度スイスイかけるようになった、、、かもしれない。 (edited)