Точнее, вы не можете использовать Node.js для внешнего интерфейса, так как он работает на сервере, а не в браузере (думайте об этом, как о любом другом языке на стороне сервера, таком как PHP, JSP и т. Д.) ,
Однако вы можете создать описанное решение с помощью jQuery или любой другой библиотеки Javascript, вам просто нужно осуществить передачу данных с помощью Socket.IO. На стороне сервера вам нужно что-то для обработки веб-сокетов, поэтому наиболее естественным способом было бы использовать Node.js, но поскольку вы хотите использовать Wordpress, это становится действительно сложным, так как Wordpress не предназначен для использования в как вы описали, так что, боюсь, вам придется писать свою CMS с нуля в Node.
Кроме того, способ, которым вы описали, имеет огромный недостаток. Сканеры поисковых систем по-прежнему не могут проанализировать и запустить Javascript, поэтому, если весь ваш контент загружается динамически, он будет казаться пустым для Google и других пользователей, поэтому невозможно будет сделать это в результатах поиска, что сделает ваш сайт практически бесполезным .
Для MySQL и других модулей для Node необходимо проверить Реестр NPM и страницу Node modules .
EDIT
После того, как Дуэйн объяснил свое решение в комментариях, я так и сделаю:
- Я бы использовал jQuery для front-end. Связывание
document
с .on () и установка селектора в «a», чтобы каждый якорь на веб-странице вызывал обработчик.
- Обработчик анализирует атрибут
a.href
и выясняет, является ли это внешней ссылкой, которая не должна обрабатываться Javascript, или это ссылка на следующую страницу, на статью и т. Д. Вы можете запретить действие по умолчанию вызвав e.preventDefault()
в обработчике, который не позволяет браузеру перенаправить в местоположение.
- Затем обработчик получит содержимое в JSON, вызвав
.getJSON()
по URL-адресу на основе статьи. Самый простой способ - перенаправить определенный шаблон (например, все URL-адреса, такие как www.domain.com/api) на службу Node через .htaccess
, чтобы предотвратить междоменные проблемы.
- Затем узел будет видеть запрос, извлекать параметры и выяснять, что хочет пользователь. Затем подключитесь к базе данных MySQL с помощью этого модуля (это так просто, как только можно) и верните соответствующий контент в формате JSON. Не забудьте установить заголовки Content-Type на «application / json».
- jQuery получает ответ, выясняет тип запроса и соответственно обновляет содержимое. Прибыль.
Как видите, я бы не использовал WebSockets в этом случае, так как вы бы не получили от этого большой пользы. Они в основном предназначены для небольших обновлений в реальном времени (без огромных заголовков HTTP для уменьшения пропускной способности), которые являются двусторонними. Это означает, что сервер также может выдвигать данные в браузер, не запрашивая их у браузера. В контексте блога это не требуется, и у вас не будет слишком много запросов, поэтому разница в пропускной способности не будет заметна в любом случае. Однако, если вы хотите использовать его в образовательных целях, просто замените часть getJSON на SocketIO, я не уверен, поддерживает ли Apache проксирование WebSockets. Дополнительная информация об основах SocketIO: здесь .