UNPKG

very-express

Version:

based on json schema and openapi, generate Express RestApi server with mongoDb

37 lines (32 loc) 1.12 kB
// {{headerComment}} import { Request, Response } from "express"; import vex from "./../_utils/index.gen"; import { VexResponseError } from "../_utils/response.gen"; import responseCode from "../_types/response/responseCode.gen"; export default class VexSystem { constructor() { // Bind the middleware method to the instance this.RouteHandler = this.RouteHandler.bind(this); } /** * System Middleware * Feature: * - error handling **/ public RouteHandler(req: Request, res: Response, handler: (req: Request, res: Response) => any) { return handler(req, res).catch((err: any) => { if ( err instanceof VexResponseError ) { return vex.response.send(res, err.status, { code: err.ret_code, message: err.message }); } else { return vex.response.send(res, 500, { code: responseCode.SERVER_ERROR, message: err.message || "Internal Server Error" }); } }); } }