UNPKG

@methodus/server

Version:
62 lines 2.37 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); require("reflect-metadata"); const express = require("express"); const bodyParser = require("body-parser"); const cookieParser = require("cookie-parser"); const path = require("path"); const base_1 = require("../base"); const log_1 = require("../../log"); const express_1 = require("../express"); const fileUpload = require("express-fileupload"); let Express = class Express extends base_1.BaseServer { constructor(port, onStart) { super(); this._app = express(); this._app.use(fileUpload({ limits: { fileSize: 50 * 1024 * 1024 }, })); this._app.use(bodyParser.urlencoded({ extended: true, })); this._app.use(bodyParser.json({ limit: '10mb' })); this._app.use(cookieParser()); this._app.set('showStackError', true); this._app.set('view engine', 'ejs'); const viewPath = path.join(__dirname, '..', '..', '..', 'views'); this._app.set('views', viewPath); this._app.use((req, res, next) => { if (req.headers.origin) { res.setHeader('Access-Control-Allow-Origin', req.headers.origin); } res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE'); let headersX = Object.keys(req.headers).map((headerName) => { return headerName.split('-').map((word) => { return headerName.charAt(0).toUpperCase() + headerName.substr(1); }).join('-'); }).join(','); headersX = 'Content-Type,' + headersX; res.setHeader('Access-Control-Allow-Headers', headersX); res.setHeader('Access-Control-Allow-Credentials', true); next(); }); if (onStart) { onStart.forEach((eventStart) => { eventStart(this._app); }); } } close() { return true; } useClass(classType, methodType) { return new express_1.ExpressRouter(classType, methodType, this._app); } }; Express = tslib_1.__decorate([ log_1.LogClass(log_1.logger), tslib_1.__metadata("design:paramtypes", [Object, Object]) ], Express); exports.Express = Express; //# sourceMappingURL=express.js.map