import express = require("express"); import { Server } from "neweb-server"; export interface IExpressHttpHandler { app: express.Express; server: Server; } class ExpressHttpHandler { constructor(protected config: IExpressHttpHandler) { } public handle: express.RequestHandler = async (req: express.Request, res: express.Response, next) => { // try { const server = this.config.server; const response = await server.resolveRequest({ url: req.url, sessionId: (req.session as Express.Session).id, headers: req.headers as any, }); Object.keys(response.headers).map((key) => { res.header(key, response.headers[key]); }); if (response.type === "NotFound") { next(); return; } if (response.type === "Redirect") { res.status(301).send(response.body); return; } res.send(response.body); /*} catch (e) { res.status(500).send(env === "development" ? (e.toString() + "\n" + e.stack).replace(/\n/gi, "
") : "Unknown error"); }*/ } } export default ExpressHttpHandler;