convex x hono
i'm not able to make the hono
i get errors if i just visit a wrong path rather it showing a message of not found or something.
.notfound.notfound endpoint work.i get errors if i just visit a wrong path rather it showing a message of not found or something.
import { Hono } from "hono";
import { HonoWithConvex, HttpRouterWithHono } from "convex-helpers/server/hono";
import { ActionCtx } from "./_generated/server";
import { internal } from "./_generated/api";
import { z } from "zod";
const app: HonoWithConvex<ActionCtx> = new Hono();
const mySchema = z.object({
number: z.string().min(1),
cursor: z.string().optional(),
numItems: z.number().int().min(1).max(100).default(10),
});
app.get("/", (c) => c.json({ message: "Welcome to the cool stuff!" }));
app.get("/number/:number", async (c) => {
try {
const params = mySchema.parse({
//my params
});
const data = await c.env.runQuery(my internalquery with param and pagination);
if (data === null) {
return c.json({ error: " not found" }, 404);
}
return c.json({
status: "success",
data: data.items,
pagination: {
hasMore: data.paginationInfo.hasMore,
nextCursor: data.paginationInfo.continueCursor,
},
metadata: {
//metadata
},
}, 200);
} catch (error) {
console.error("Error processing:", error);
if (error instanceof z.ZodError) {
return c.json({ status: "error", error: "Invalid input", details: error }, 400);
}
return c.json({ status: "error", error: "Internal server error" }, 500);
}
});
app.notFound((c) => c.json({ status: "error", error: "Not found" }, 404));
export default new HttpRouterWithHono(app);import { Hono } from "hono";
import { HonoWithConvex, HttpRouterWithHono } from "convex-helpers/server/hono";
import { ActionCtx } from "./_generated/server";
import { internal } from "./_generated/api";
import { z } from "zod";
const app: HonoWithConvex<ActionCtx> = new Hono();
const mySchema = z.object({
number: z.string().min(1),
cursor: z.string().optional(),
numItems: z.number().int().min(1).max(100).default(10),
});
app.get("/", (c) => c.json({ message: "Welcome to the cool stuff!" }));
app.get("/number/:number", async (c) => {
try {
const params = mySchema.parse({
//my params
});
const data = await c.env.runQuery(my internalquery with param and pagination);
if (data === null) {
return c.json({ error: " not found" }, 404);
}
return c.json({
status: "success",
data: data.items,
pagination: {
hasMore: data.paginationInfo.hasMore,
nextCursor: data.paginationInfo.continueCursor,
},
metadata: {
//metadata
},
}, 200);
} catch (error) {
console.error("Error processing:", error);
if (error instanceof z.ZodError) {
return c.json({ status: "error", error: "Invalid input", details: error }, 400);
}
return c.json({ status: "error", error: "Internal server error" }, 500);
}
});
app.notFound((c) => c.json({ status: "error", error: "Not found" }, 404));
export default new HttpRouterWithHono(app);