#javascript #angular #express #server-side-rendering #angular-universal
Вопрос:
У меня есть Express
сервер, который служит Angular
приложением в качестве статического контента, но он также выполняет множество других функций. Теперь я хочу добавить Server-side Rendering
с Angular Universal
помощью, но это создает новый Express
сервер , который будет обслуживать Angular
приложение. Как мы можем обслуживать Angular Universal
уже существующее Express
приложение? Это должно быть общей особенностью, так как многие проекты не были реализованы Angular Universal
с самого начала, и их необходимо добавить на уже существующий сервер. Странно, что в официальных Angular
документах об этом ничего не говорится.
Я хочу упомянуть , что я реализовал Express
сервер с JavaScript
помощью, а не TypeScript
.
Ответ №1:
Возможно, попробуйте что-то подобное из вашего существующего экспресс-приложения
const server = require(`dist/server/main.js`);//file generated by angular universal
const universalApp = server.app();
const server = <your existing express server>;
server.use('/frontappUrl', universalApp);
server.listen(<port>,...);
Комментарии:
1. Эй, спасибо за твой ответ. На самом деле я решил не использовать Angular Universal, потому что это не сработало, так как я использовал объект «окно» во многих местах своего приложения, а Angular Universal не может отображать объект «окно» на стороне сервера, поэтому я потерял бы некоторые функции. Я реализовал «prerender.io» вместо этого служба. В любом случае, я попробую ваше решение, чтобы проверить, сработает ли оно, так как я пытался понять, как бы я использовал его с существующим экспресс-сервером, и поскольку в документах об этом ничего нет, ваш ответ будет полезен всем остальным, у которых есть такая же проблема, если это рабочее решение.