UNPKG

nodram

Version:
50 lines (49 loc) 2 kB
// polyfills have to be first "use strict"; require("angular2-universal-polyfills"); require("ts-helpers"); require("./helpers/__workaround.node"); //temporary until 2.1.1 things are patched in Core require("angular2-universal-polyfills"); var http = require("http"); var path = require("path"); var express = require("express"); var compress = require("compression"); var morgan = require("morgan"); var angular2_express_engine_1 = require("angular2-express-engine"); var RenderRouter_1 = require("./routers/RenderRouter"); var node_module_1 = require("./node.module"); var core_1 = require("@angular/core"); // will change depending on your app var ROOT = path.join(path.resolve(__dirname, '..')); var VIEW_DIR = path.join(path.resolve(__dirname, './views')); var WebServer = (function () { function WebServer() { // enable prod for faster renders core_1.enableProdMode(); } WebServer.prototype.start = function () { var app = express(); var server = http.createServer(app); if (process.env.NODE_ENV === "development") { 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', angular2_express_engine_1.createEngine({ ngModule: node_module_1.MainModule, precompile: true, })); app.set('views', VIEW_DIR); app.set('view engine', 'html'); // Serve static files var MILLISECONDS_IN_A_DAY = 1000 * 60 * 60 * 24; app.use(express.static(path.join(ROOT, 'static'), { index: false, maxAge: MILLISECONDS_IN_A_DAY })); //Create SITE Routes var renderRoute = new RenderRouter_1.RenderRouter().createRoutes(); app.use("/", renderRoute); return server; }; return WebServer; }()); exports.WebServer = WebServer;