- 新增 Dockerfile 和 .dockerignore 文件 - 添加 Gitea 持续集成工作流,用于构建和推送 Docker 镜像 - 新增 .gitignore 文件,忽略构建和配置文件 - 添加项目结构和规范文档,包括 TypeScript、模块化、API、数据库等规范 - 新增前端和后端的基础代码结构
34 lines
736 B
TypeScript
34 lines
736 B
TypeScript
import { Context } from 'hono'
|
|
import { z } from 'zod'
|
|
import { HTTPException } from 'hono/http-exception'
|
|
|
|
export const ErrorSchema = z.object({
|
|
code: z.number().openapi({
|
|
example: 400,
|
|
}),
|
|
message: z.string().openapi({
|
|
example: 'Bad Request',
|
|
}),
|
|
})
|
|
|
|
export const errorHandler = async (err: Error, c: Context) => {
|
|
if (err instanceof HTTPException) {
|
|
const details = err.cause ? { details: err.cause instanceof Error ? err.cause.message : err.cause } : {}
|
|
return c.json(
|
|
{
|
|
code: err.status,
|
|
message: err.message,
|
|
...details
|
|
},
|
|
err.status
|
|
)
|
|
}
|
|
|
|
return c.json(
|
|
{
|
|
code: 500,
|
|
message: err.message || 'Internal Server Error'
|
|
},
|
|
500
|
|
)
|
|
} |