UNPKG

1.24 kBPlain TextView Raw
1import express = require("express");
2import { Server } from "neweb-server";
3export interface IExpressHttpHandler {
4 app: express.Express;
5 server: Server;
6}
7class ExpressHttpHandler {
8 constructor(protected config: IExpressHttpHandler) { }
9 public handle: express.RequestHandler = async (req: express.Request, res: express.Response, next) => {
10 // try {
11 const server = this.config.server;
12 const response = await server.resolveRequest({
13 url: req.url,
14 sessionId: (req.session as Express.Session).id,
15 headers: req.headers as any,
16 });
17 Object.keys(response.headers).map((key) => {
18 res.header(key, response.headers[key]);
19 });
20 if (response.type === "NotFound") {
21 next();
22 return;
23 }
24 if (response.type === "Redirect") {
25 res.status(301).send(response.body);
26 return;
27 }
28 res.send(response.body);
29 /*} catch (e) {
30 res.status(500).send(env === "development" ?
31 (e.toString() + "\n" + e.stack).replace(/\n/gi, "<br />") : "Unknown error");
32 }*/
33 }
34}
35export default ExpressHttpHandler;