Использование NodeJS в качестве мультисервисного рендеринга микросервиса

Можно ли внедрить изоморфное приложение NodeJS на другой веб-сайт (например, на то, что работает под управлением PHP 5.3 / WordPress) с помощью cURL’ing (или с помощью какого-либо другого вида HTTP GET) на веб-сервер Node как часть HTTP-ответа исходного сайта?

Например, я пытаюсь загрузить mywebsite.com (PHP / WordPress), который имеет маршруты / страницы, построенные из CMS WordPress, но на определенной странице (или наборе страниц) включает изоморфное приложение NodeJS как часть его содержание тела.

В идеале, это такая архитектура, которая у нас была бы:

  1. mywebsite.com — PHP / WordPress (первый сервер)
  2. mywebsite.com/application — упакован в PHP / WordPress, но содержит
    Изоморфное приложение NodeJS (второй сервер), отображающее «домашнее» представление со ссылкой на «подстраницу» в приложении, также извлекает данные
    из API на третьем сервере
  3. mywebsite.com/application/subpage —
    Обернутый PHP / WordPress, но включает приложения NodeJS
    просмотр «подстраницы»

Как вы можете видеть, хотя PHP / WordPress обрабатывает основной сайт, сервер NodeJS будет распространять централизованное приложение потенциально на несколько сотен веб-сайтов.

Моя текущая реализация работает следующим образом:

Первый сервер (PHP / WordPress):

  1. Получить HTTP GET для WordPress «страница»
  2. Начать рендеринг страницы
  3. HTTP-запрос GET для сервера Node

Второй сервер (NodeJS / Express):

  1. Получить HTTP GET для маршрута, который обернут в выборку API (третий сервер)
  2. Получите ответ API и ответьте на HTTP GET с первого сервера с соответствующим представлением

Первый сервер (PHP / WordPress):

  1. Получите ответ от NodeJS, завершите рендеринг остальной части страницы и ответьте браузеру

Тем не менее, существуют две проблемы / вопросы:

  1. Как генерировать пригодные для использования и индексируемые поисковой системой маршруты (определенные в приложении Node), исходящие из запросов к первому серверу
  2. Как передать клиентскую логику от узла для соответствующего просмотра обратно клиенту
  3. Предполагая, что мы можем сделать это как можно быстрее, какие риски или ненужные риски принимает этот метод?
  4. Является ли это гораздо более запутанным способом сделать что-то, что можно сделать проще с помощью другого метода? Бонус: Как называется этот метод / идея / процесс?

Одна из причин, по которой я не могу просто перестроить оригинальный сайт полностью в Node, заключается в том, что наша компания в настоящее время поддерживает сотни веб-сайтов для клиентов, созданных с различными языками / фреймворками / серверными версиями, и мы хотим иметь возможность распространять один и тот же продукт каждому независимо от ограничений назначения.

Заранее спасибо!

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]