chore: 在 ServerBase 类中添加自定义错误处理逻辑

This commit is contained in:
2026-02-20 22:34:48 +08:00
parent 2e59e318bf
commit 132aa3a888

View File

@@ -4,6 +4,7 @@ import * as cookie from './cookie.ts';
import { ServerType, Listener, OnListener, ServerOpts, OnWebSocketOptions, OnWebSocketFn, WebSocketListenerFun, ListenerFun, HttpListenerFun, WS } from './server-type.ts'; import { ServerType, Listener, OnListener, ServerOpts, OnWebSocketOptions, OnWebSocketFn, WebSocketListenerFun, ListenerFun, HttpListenerFun, WS } from './server-type.ts';
import { parseIfJson } from '../utils/parse.ts'; import { parseIfJson } from '../utils/parse.ts';
import { EventEmitter } from 'eventemitter3'; import { EventEmitter } from 'eventemitter3';
import { CustomError } from '../result/error.ts';
type CookieFn = (name: string, value: string, options?: cookie.SerializeOptions, end?: boolean) => void; type CookieFn = (name: string, value: string, options?: cookie.SerializeOptions, end?: boolean) => void;
export type HandleCtx = { export type HandleCtx = {
@@ -165,8 +166,13 @@ export class ServerBase implements ServerType {
res.end(JSON.stringify(end)); res.end(JSON.stringify(end));
} }
} catch (e) { } catch (e) {
console.error(e);
res.setHeader('Content-Type', 'application/json; charset=utf-8'); res.setHeader('Content-Type', 'application/json; charset=utf-8');
if (CustomError.isError(e)) {
const parsedError = CustomError.parseError(e);
res.end(JSON.stringify(parsedError));
return;
}
console.error(e);
if (e.code && typeof e.code === 'number') { if (e.code && typeof e.code === 'number') {
res.end(resultError(e.message || `Router Server error`, e.code)); res.end(resultError(e.message || `Router Server error`, e.code));
} else { } else {