neweb
Version:
[![NPM version][npm-image]][npm-url] [![Build Status][travis-image]][travis-url] [![Dependency Status][daviddm-image]][daviddm-url] [![Coverage percentage][coveralls-image]][coveralls-url] [ • 1.24 kB
text/typescript
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, "<br />") : "Unknown error");
}*/
}
}
export default ExpressHttpHandler;