#node.js
#node.js
Вопрос:
У меня есть server.js файл, который запускает мой сервер и отображает html-файлы. В файле javascript на стороне клиента я хотел бы сделать ajax-запрос к отдельному файлу js на стороне сервера, который извлекает данные из API. Возможно ли это? или есть лучшее решение при работе в среде узла.
Комментарии:
1. Вы пытаетесь использовать два отдельных API? Почему бы не сделать этот второй API доступным через первый скрипт?
Ответ №1:
Вы можете запустить несколько node.js файлы на одном сервере. Запуск каждого из них с помощью node my_file.js
.
И да, есть лучший вариант для достижения желаемого эффекта, вместо запуска нескольких серверов. Я бы даже не рекомендовал вам запускать второй сервер, если вы намеренно не хотите, чтобы он был полностью независимым объектом.
Решение называется маршрутизацией, например, вы хотите обслуживать две функции с Node.js:
http://my-app.com/
http://my-app.com/api/users
Насколько я понимаю, вы знаете, как их реализовать, теперь вам просто нужен маршрутизатор для их объединения.
Доступно много маршрутизаторов с отличными примерами и документацией.
Давайте считать, что вы выбрали Express, затем, следуя этому руководству, ваш основной (отправная точка) JS-файл будет содержать простые инструкции, указывающие, какой JS-файл обслуживает какую часть вашего веб-сайта:
app.get('/', mySite.index);
app.all('/api/*', myApi.index);
Обратите внимание: это неполный код, обратитесь к документации ExpressJS или к другому маршрутизатору, который вы решите использовать.
ExpressJS — это богатый фреймворк, если вам нужен только маршрутизатор, возможно, вы захотите найти что-нибудь попроще.
Комментарии:
1. Привет, спасибо, я использую express, я просто подумал с точки зрения сервера PHP apache. Хотя это отличное решение
2. @wazzaday да, комбинация Apache PHP немного отличается. Apache выступает там в роли маршрутизатора, а также интерпретатора PHP. С Node.js у вас есть команда
node
, которая является интерпретатором, и вам нужно беспокоиться о роли маршрутизатора самостоятельно 🙂 Хотя это хорошо, вернемся к истокам компьютеров — больше контроля = больше возможностей.