gallery-frontend/render.js
2017-08-09 13:41:32 +02:00

36 lines
950 B
JavaScript

const PORT = 4000;
require('reflect-metadata');
require('zone.js/dist/zone-node');
const { renderModuleFactory } = require('@angular/platform-server');
const { enableProdMode } = require('@angular/core');
const { join } = require('path');
const express = require('express');
const fs = require('fs');
const { AppServerModuleNgFactory } = require('./dist-ssr/main.bundle');
enableProdMode();
const app = express();
let template = fs.readFileSync('dist/index.html', 'utf8');
app.engine('html', (_, options, callback) => {
renderModuleFactory(AppServerModuleNgFactory, {
document: template,
url: options.req.url
}).then(html => callback(null, html));
});
app.set('view engine', 'html');
app.set('views', 'src')
app.get('*.*', express.static(join(__dirname, 'dist')));
app.get('*', (req, res) => {
res.render('index', { req });
});
app.listen(PORT, () => {
console.log(`listening on http://localhost:${PORT}!`);
});