UNPKG

nodram

Version:
69 lines (39 loc) 1.84 kB
import * as http from 'http'; import * as path from 'path'; import * as ejs from 'ejs'; import * as express from 'express'; import * as compress from "compression"; import * as morgan from 'morgan'; import {RenderRouter} from "./routers/RenderRouter"; const ROOT = path.join(path.resolve(__dirname, '..')); const VIEW_DIR = path.join(path.resolve(__dirname, './views')); export class WebServer { constructor() {} public start(){ let app = express(); let server = http.createServer(app); if (process.env.NODE_ENV === "development") { //morgan.token('workerId', () => this.workerId.toString()); //app.use(morgan(":workerId :method :url :status :response-time ms - :res[content-length]")); app.use(morgan('dev')); } if (process.env.NODE_ENV === 'production') { app.use(compress()); } // 1. set up Angular Universal to be the rendering engine for Express app.engine('html', ejs.renderFile); app.set('views', VIEW_DIR); app.set('view engine', 'html'); // Serve static files // Serve static files const MILLISECONDS_IN_A_DAY = 1000 * 60 * 60 * 24; app.use('/node_modules', express.static(path.join(ROOT, 'node_modules'), {maxAge: MILLISECONDS_IN_A_DAY})); app.use('/scripts/bundles', express.static(path.join(ROOT, '/static/scripts/bundles'), {maxAge: MILLISECONDS_IN_A_DAY})); app.use(express.static(path.join(ROOT, 'static'), {index: false})); app.use(express.static(path.join(ROOT, 'browser'))); //Create SITE Routes let renderRoute = new RenderRouter().createRoutesHTML(); app.use("/",renderRoute); return server; } }