fix: error

This commit is contained in:
2026-02-17 16:28:21 +08:00
parent 15db8515d6
commit 170954ae7c
2 changed files with 12 additions and 8 deletions

View File

@@ -1,7 +1,7 @@
{ {
"$schema": "https://json.schemastore.org/package", "$schema": "https://json.schemastore.org/package",
"name": "@kevisual/router", "name": "@kevisual/router",
"version": "0.0.70", "version": "0.0.71",
"description": "", "description": "",
"type": "module", "type": "module",
"main": "./dist/router.js", "main": "./dist/router.js",

View File

@@ -3,7 +3,6 @@ import { CustomError } from './result/error.ts';
import { pick } from './utils/pick.ts'; import { pick } from './utils/pick.ts';
import { listenProcess, MockProcess } from './utils/listen-process.ts'; import { listenProcess, MockProcess } from './utils/listen-process.ts';
import { z } from 'zod'; import { z } from 'zod';
import { filter } from '@kevisual/js-filter'
export type RouterContextT = { code?: number;[key: string]: any }; export type RouterContextT = { code?: number;[key: string]: any };
export type RouteContext<T = { code?: number }, S = any> = { export type RouteContext<T = { code?: number }, S = any> = {
@@ -14,6 +13,7 @@ export type RouteContext<T = { code?: number }, S = any> = {
appId?: string; appId?: string;
// run first // run first
query?: { [key: string]: any }; query?: { [key: string]: any };
args?: { [key: string]: any };
// response body // response body
/** return body */ /** return body */
body?: number | string | Object; body?: number | string | Object;
@@ -405,15 +405,15 @@ export class QueryRouter {
console.error('=====debug====:middlerware error'); console.error('=====debug====:middlerware error');
console.error('=====debug====:', e); console.error('=====debug====:', e);
console.error('=====debug====:[path:key]:', `${route.path}-${route.key}`); console.error('=====debug====:[path:key]:', `${route.path}-${route.key}`);
console.error('=====debug====:', e.message);
} }
if (e instanceof CustomError || e?.code) { if (e instanceof CustomError || e?.code) {
ctx.code = e.code; ctx.code = e.code;
ctx.message = e.message; ctx.message = e.message;
ctx.body = null; ctx.body = null;
} else { } else {
console.error(`fn:${route.path}-${route.key}:${route.id}`); console.error(`[router error] fn:${route.path}-${route.key}:${route.id}`);
console.error(`middleware:${middleware.path}-${middleware.key}:${middleware.id}`); console.error(`[router error] middleware:${middleware.path}-${middleware.key}:${middleware.id}`);
console.error(e)
ctx.code = 500; ctx.code = 500;
ctx.message = 'Internal Server Error'; ctx.message = 'Internal Server Error';
ctx.body = null; ctx.body = null;
@@ -432,14 +432,16 @@ export class QueryRouter {
await route.run(ctx as Required<RouteContext>); await route.run(ctx as Required<RouteContext>);
} catch (e) { } catch (e) {
if (route?.isDebug) { if (route?.isDebug) {
console.error('=====debug====:', 'router run error:', e.message); console.error('=====debug====:route error');
console.error('=====debug====:', e);
console.error('=====debug====:[path:key]:', `${route.path}-${route.key}`);
} }
if (e instanceof CustomError) { if (e instanceof CustomError) {
ctx.code = e.code; ctx.code = e.code;
ctx.message = e.message; ctx.message = e.message;
} else { } else {
console.error(`[error]fn:${route.path}-${route.key}:${route.id}`); console.error(`[router error] fn:${route.path}-${route.key}:${route.id}`);
console.error('error', e.message); console.error(`[router error] error`, e);
ctx.code = 500; ctx.code = 500;
ctx.message = 'Internal Server Error'; ctx.message = 'Internal Server Error';
} }
@@ -469,6 +471,7 @@ export class QueryRouter {
return ctx; return ctx;
} }
ctx.query = { ...ctx.query, ...ctx.nextQuery }; ctx.query = { ...ctx.query, ...ctx.nextQuery };
ctx.args = ctx.query;
ctx.nextQuery = {}; ctx.nextQuery = {};
return await this.runRoute(path, key, ctx); return await this.runRoute(path, key, ctx);
} }
@@ -496,6 +499,7 @@ export class QueryRouter {
const { path, key = '', payload = {}, ...query } = message; const { path, key = '', payload = {}, ...query } = message;
ctx = ctx || {}; ctx = ctx || {};
ctx.query = { ...ctx.query, ...query, ...payload }; ctx.query = { ...ctx.query, ...query, ...payload };
ctx.args = ctx.query;
ctx.state = { ...ctx?.state }; ctx.state = { ...ctx?.state };
ctx.throw = this.throw; ctx.throw = this.throw;
ctx.app = this; ctx.app = this;