import { AngularNodeAppEngine, createNodeRequestHandler, isMainModule, writeResponseToNodeResponse, } from '@angular/ssr/node'; import * as http from 'node:http'; const ngApp = new AngularNodeAppEngine(); /** * Handle incoming requests using the Angular SSR engine. * Prerendered routes are served as static HTML at build time. * Dynamic routes fall back to server-side rendering. */ export default createNodeRequestHandler(async (req, res, next) => { try { const response = await ngApp.handle(req); if (response) { await writeResponseToNodeResponse(response, res); } else { next(); } } catch (error) { next(error); } }); if (isMainModule(import.meta.url)) { const httpServer = http.createServer(); httpServer.on('request', async (req: http.IncomingMessage, res: http.ServerResponse) => { const handler = (await import('./server.js')).default; handler(req, res, () => { res.statusCode = 404; res.end('Not Found'); }); }); httpServer.listen(4200, () => { console.log(`Node SSR server listening on http://localhost:4200`); }); }