@Ghash

Реально сделать проект по схеме, где фронтенд работает на Node.JS, а бэкенд на php?

Подскажите пожалуйста, реально сделать проект по схеме, где фронтенд работает на Node.JS, а бекенд на php? Если - да, то как выстроить грамотно архитектуру сервера. Если ставим Nginx (прокси) + Node.JS, то получается что Node.JS работает как бекенд. Заранее благодарен!
  • Вопрос задан
  • 734 просмотра
Решения вопроса 2
@miksir
IT
Как уже сказали, нода - это тоже бекенд. Используются вместе путем разделения запросов к ноде и пхп по урлу или имени сервера.

Например, по урлу. Запросы вида /api/что-то/ идут на пхп, все остальные - на ноду. Т.е. запрос клиента приходит на nginx, тот перенаправляет его на ноду, она отрабатывает логику и делает запрос в nginx на /api/что-то/, который, используя правила location - перенаправлет его в php.

По домену - аналогично. Просто в nginx будет для разных типов запросов разные server блоки со своими site_name (и, возможно, своими listen, если мы хотим разнести эти точки входа по разным портам или ip адресам). Если запрос на www.domain.com - запрос на ноду. Если запрос на localhost - запрос в php. Соответсвенно, нода делает запросы на localhost (тоже через nginx).

Теоретически, нода может работать напрямую с PHP без промежуточного nginx, по протоколу FastCGI, но такая схема почти не используется. И из-за того, что работать из ноды с http проще, и из-за гораздо большей гибкости управления конфигурацией, тогда как дополнительные накладные расходы из-да nginx между нодой и пхп - весьма малы относительно общего времени обработки запроса.
Ответ написан
vitali1995
@vitali1995
Конечно реально! Загуглите такие темы как Electron и nw.js
Если нода всё таки используется как сервер, а не клиент, то вам может пригодится для начала webpack-dev-server.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
abyrkov
@abyrkov
JavaScripter
Node.js - всегда Backend.
Ответ написан
Комментировать
@malbaron
Фронтенд - это взаимодействие с пользователем на клиентском компьютере. В браузере.
В браузере уже есть свой движок, заправляющий JavaScript`ом.
NodeJS там не нужна.

Если вы про то, что на клиенте NodeJS (без браузера!!!!), а на сервере PHP - да, это возможно.
Но применять слово "фронтенд" к NodeJS в данном случае будет некорректно.
Правильнее называть NodeJS клиентом, клиентским приложением.
Ответ написан
dpigo
@dpigo
Front-end developer
Ну если в качестве браузера у вас будет фантом.жс ) "Фронтенд" работает в браузере, какбе.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы