mirror of
https://github.com/jetzig-framework/jetzig.git
synced 2025-05-14 22:16:08 +00:00
Log error to output and add to data
This commit is contained in:
parent
b66073955d
commit
f8502be587
@ -4,7 +4,7 @@ _Jetzig_ is a web framework written in [Zig](https://ziglang.org) :lizard:.
|
||||
|
||||
The framework is under active development and is currently in an alpha state.
|
||||
|
||||
_Jetzig_ is an ambitious and opinionated web framework. It aims to provide a rich set of user-friendly tools for building modern web applications quickly. See the checklist below.
|
||||
_Jetzig_ aims to provide a rich set of user-friendly tools for building modern web applications quickly. See the checklist below.
|
||||
|
||||
If you are interested in _Jetzig_ you will probably find these tools interesting too:
|
||||
|
||||
@ -16,11 +16,11 @@ If you are interested in _Jetzig_ you will probably find these tools interesting
|
||||
* :white_check_mark: File system-based routing with [slug] matching.
|
||||
* :white_check_mark: _HTML_ and _JSON_ response (inferred from extension and/or `Accept` header).
|
||||
* :white_check_mark: _JSON_-compatible response data builder.
|
||||
* :white_check_mark: _HTML_ templating (see [Zmpl](https://github.com/bobf/zmpl)).
|
||||
* :white_check_mark: _HTML_ templating (see [Zmpl](https://github.com/jetzig-framework/zmpl)).
|
||||
* :white_check_mark: Per-request arena allocator.
|
||||
* :white_check_mark: Sessions.
|
||||
* :white_check_mark: Cookies.
|
||||
* :x: Error handling.
|
||||
* :white_check_mark: Error handling.
|
||||
* :x: Headers (available but not yet wrapped).
|
||||
* :x: Param/JSON payload parsing/abstracting.
|
||||
* :x: Development-mode responses for debugging.
|
||||
|
@ -8,6 +8,5 @@ const View = jetzig.views.View;
|
||||
pub fn index(request: *Request, data: *Data) anyerror!View {
|
||||
var object = try data.object();
|
||||
try object.put("foo", data.string("hello"));
|
||||
// return error.OhNo;
|
||||
return request.render(.ok);
|
||||
}
|
||||
|
@ -201,6 +201,7 @@ fn renderView(
|
||||
template: ?jetzig.TemplateFn,
|
||||
) !RenderedView {
|
||||
const view = matched_route.render(matched_route, request) catch |err| {
|
||||
self.logger.debug("Encountered error: {s}", .{@errorName(err)});
|
||||
switch (err) {
|
||||
error.OutOfMemory => return err,
|
||||
else => return try self.internalServerError(request, err),
|
||||
@ -216,9 +217,10 @@ fn internalServerError(self: *Self, request: *jetzig.http.Request, err: anyerror
|
||||
request.response_data.reset();
|
||||
var object = try request.response_data.object();
|
||||
try object.put("error", request.response_data.string(@errorName(err)));
|
||||
|
||||
return .{
|
||||
.view = jetzig.views.View{ .data = request.response_data, .status_code = .internal_server_error },
|
||||
.content = "An unexpected error occurred.",
|
||||
.content = "Internal Server Error\n",
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -98,7 +98,7 @@ pub const TaggedStatusCode = union(StatusCode) {
|
||||
switching_protocols: StatusCodeType("101", "Switching Protocols"),
|
||||
processing: StatusCodeType("102", "Processing"),
|
||||
early_hints: StatusCodeType("103", "Early Hints"),
|
||||
ok: StatusCodeType("200", "Ok"),
|
||||
ok: StatusCodeType("200", "OK"),
|
||||
created: StatusCodeType("201", "Created"),
|
||||
accepted: StatusCodeType("202", "Accepted"),
|
||||
non_authoritative_info: StatusCodeType("203", "Non Authoritative Information"),
|
||||
|
Loading…
x
Reference in New Issue
Block a user