36 lines
953 B
JavaScript
36 lines
953 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', 'dist')
|
|
|
|
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}!`);
|
|
});
|