Подтвердить что ты не робот

Как запустить сервер Node.JS для веб-приложения?

Информация: я очень новичок в node.JS!

Я написал пример сервера, который может прослушивать HTTP-запросы на порт XXXX. Когда я запускаю этот сервер из командной строки (Windows), он работает хорошо. Он отвечает на запросы, сделанные на localhost: XXXX при открытии в браузере.

Вопрос: Так ли это должно работать? Для запуска сервера node должна ли всегда появляться приглашение CMD для сервера для прослушивания запросов? Могу ли я что-то делать с IISNode?

Я понимаю, что если я сделаю запрос к JS файлам, который отмечен в IISNode как файл node.JS и что node должен его обрабатывать; то у меня будет node обработка запроса для меня. Но тогда это предполагает, что IIS - это веб-сервер для меня, и что конкретные запросы могут обрабатываться с помощью node.

Надеюсь, у меня есть смысл здесь!:)

4b9b3361

Ответ 1

Я решил это, используя правильный метод. Да, IISNode это.. Но ни один из комментариев, казалось, не отвечал, как "запускать" app.js для разных приложений, размещенных на одном и том же IIS (который также обслуживает PHP, ASPX и т.д.)

Шаг 1. Измените свою входную точку приложения node (обычно) app.js для новой структуры URL.

Экспресс-приложение предполагает, что оно владеет всем пространством URL-адресов и запускает URL-адреса из самого корня, как показано:

Default EXPRESS App.js

Отредактируйте приложение app.js, чтобы оно выглядело следующим образом (но вместо имени "aaspass" вместо имени "aaspass" введите имя своего приложения!):


app.js modified as per directory structure of app hosted on IIS



Теперь поместите файл web.config в корень вашего приложения, которое выглядит следующим образом (вы можете использовать этот шаблон: webconfig).

Снова отредактируйте файл и измените имя "aaspass" на имя каталога вашего приложения.



Modified We.Config to add rules to redirect to relevant app.js

Вот оно! Вы можете сделать это как можно больше приложений и разместить их на сервере SAME.

Ответ 2

В Windows у вас есть два варианта хостинга приложений node.js:

  • Самостоятельный процесс node.exe, как и на nix. Во время разработки вы, вероятно, просто запустите его из командной строки. В производстве вы хотите создать механизм, который обеспечит управление жизненным циклом процесса вокруг node.exe(например, запустите его при запуске ОС). Самый разумный способ сделать это в Windows - использовать службы Windows (также известные как службы NT). Компонент, который может вам помочь, - http://nssm.cc/.
  • Host node.js с IIS с использованием iisnode (http://github.com/tjanczuk/iisnode). По сравнению с самообслуживанием этот метод имеет ряд преимуществ, описанных в https://github.com/tjanczuk/iisnode/wiki. Но вы также хотите изучить последствия производительности (не все из них плохие на самом деле): http://tomasz.janczuk.org/2012/06/performance-of-hosting-nodejs.html.

Ответ 3

Что сработало для меня:

  • Установить IISNode
  • Установить модуль перезаписи URL-адресов IIS
  • Добавьте файл web.config в папку Node.js/папку. Вот содержимое файла web.config:

    В обработчике мне просто нужно указать на app.js(типичная точка входа вашего приложения). Я не изменил ни один из моих маршрутов (нет необходимости добавлять какой-либо текст).

..

<configuration> 
        <appSettings>
            <add key="NODE_ENV" value="production" />
        </appSettings>
          <system.webServer>



    <handlers>
      <add name="iisnode" path="server/app.js" verb="*" modules="iisnode" />
    </handlers>

     <rewrite>
      <rules>
       <clear />
        <rule name="cdw">
          <match url="/*" />
          <action type="Rewrite" url="server/app.js" />
        </rule>
      </rules>
    </rewrite>

  </system.webServer>
</configuration>