Error handling in Validator
By using a validator, you can handle invalid input more easily.
Snippets
You can utilize the callback result for implementing custom error handling.
Although this snippet employs Zod Validator, you can apply a similar approach with any supported validator library.
ts
import { z } from "zod";
import { zValidator } from "@hono/zod-validator";
const app = new Hono();
const userSchema = z.object({
name: z.string(),
age: z.number(),
});
app.post(
"/users/new",
zValidator("json", userSchema, (result, c) => {
if (!result.success) {
return c.text("Invalid!", 400);
}
}),
async (c) => {
const user = c.req.valid("json");
console.log(user.name); // string
console.log(user.age); // number
}
);
import { z } from "zod";
import { zValidator } from "@hono/zod-validator";
const app = new Hono();
const userSchema = z.object({
name: z.string(),
age: z.number(),
});
app.post(
"/users/new",
zValidator("json", userSchema, (result, c) => {
if (!result.success) {
return c.text("Invalid!", 400);
}
}),
async (c) => {
const user = c.req.valid("json");
console.log(user.name); // string
console.log(user.age); // number
}
);