Я использую программное обеспечение форума, основанное на MVC-шаблоне (Шаблоны и PHP-классы). Страницы выглядят следующим образом: domain.com/index.php?page=Test
Я хочу настроить чат-сервер на одной странице (domain.com/index.php?page=Chat) с помощью узла и now.js. Теперь я сталкиваюсь с проблемой: как сообщить серверный код, что сервер чата должен работать на index.php? Page = Chat Очевидно, я не могу сделать что-то вроде этого:
fs.readFile('index.php?page=Chat')
Любые идеи по настройке сервера узлов на таких URL-адресах? Благодаря!
Я бы немного погрузился в node.js. Поскольку узел сам является веб-сервером, вам нужно немного узнать о том, как работает настройка маршрутизации и конфигурации сервера. В принципе, все, что приходит на порт 80, прослушивается вашим (вероятным) Apache Service. Apache рассматривает URI и решает, какой сценарий в вашем приложении запускается, запускает php-процессы, которые запускают ваш код, и генерирует веб-страницу для отправки пользователю.
Поэтому, когда вы видите:
domain.com/chat
против
domain.com/index.php?page=Chat
Это говорит Апач: «Эй, ты настроил меня читать / чат» как /index.php?page=Что, так что я убью этот сценарий ».
Node.js походит на то, как и Apache AND PHP в одном лице. Он обрабатывает запросы и создает страницы. Таким образом, вы будете иметь node.js и Apache, наступая друг на друга, когда появятся запросы. Чтобы оба приложения прослушивали порт 80, вам нужно было бы что-то вроде:
https://github.com/nodejitsu/node-http-proxy
Этот модуль узла перенаправляет необработанные запросы сервера в Apache, что позволит вам иметь смешанное приложение nodejs / apache + php.
На этапе шаблонов шаблоны php и javascript нельзя смешивать, поскольку они построены на совершенно разных языках. Значит, тебе не повезло, почти. У узла есть очень богатый список шаблонов шаблонов. Некоторые из них, вероятно, будут иметь близкий идентичный синтаксис к тому, что вы используете, поэтому его было бы просто переносить.
https://github.com/joyent/node/wiki/modules#wiki-templating
Надеюсь, это ответит на ваш вопрос. Я бы все же, как прокомментировал, использовал iFrame, поместил узел в другой порт и сохранил обе эти архитектуры и разделил их. Или используйте чат-сервис и не беспокойтесь о настройке целого отдельного приложения. Если вы не хотите учиться, и в этом случае сходите с ума. 🙂
вы можете запустить сервер узла в порту, например, 8080, и может включать js-клиент на стороне клиента как обычный javascript в любом из файлов вида, который он будет работать