diff --git a/README.md b/README.md index e945bca5..89b74d37 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ server.listen(port, () => { ## utils - `send (req, data, type)` -- `error (req, data, code)` +- `error (req, error, code)` - `redirect (req, location, code)` - `lazy (handle)` diff --git a/src/app.ts b/src/app.ts index 9d9c923f..3b549d62 100644 --- a/src/app.ts +++ b/src/app.ts @@ -37,10 +37,7 @@ export function createApp (): App { const handle: Handle = function (req: IncomingMessage, res: ServerResponse) { return _handle(req, res).catch((err: Error | any) => { - error(res, - debug ? err.stack : 'internal error', - res.statusCode || err.status || err.statusCode || 500 - ) + error(res, err) }) } diff --git a/src/utils.ts b/src/utils.ts index cb566b2c..9c4efe6d 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -17,9 +17,18 @@ export function defaultContentType (res: ServerResponse, type: string) { } } -export function error (res: ServerResponse, data: string, code: number = 500) { - code = res.statusCode = (res.statusCode === 200) ? code : res.statusCode - res.end(code + ': ' + data) +export function error (res: ServerResponse, error: Error, code?: number) { + // @ts-ignore + res._error = error + + res.statusCode = code || (res.statusCode !== 200) + ? res.statusCode + // @ts-ignore + : (error.status || error.statusCode || 500) + + const message = error.toString() + + res.end(code + ' - ' + message) } export function redirect (res: ServerResponse, location: string, code = 302) {