Поскольку вы упомянули on my PC
, я считаю, что для запуска приложения Node.js на вашем ПК требуется модуль iisnode .Его конфигурация в вашем web.config
обеспечивает запуск процесса Node.js, и выполняется основной файл Node.exe
(например, server.js
/ main.js
/ app.js
) и весь жизненный цикл приложения.
Пример выглядит следующим образом:
<handlers>
<add name="iisnode" path="server.js" verb="*" modules="iisnode" />
</handlers>
<!--...-->
<iisnode
nodeProcessCommandLine=""%programfiles%\nodejs\node.exe""
interceptor=""%programfiles%\iisnode\interceptor.js"" />
Надеюсь, это поможет.Этот же модуль также помогает запускать приложение Node.js в Azure (в инфраструктуре докера также может использоваться тот же модуль).
Дополнительные ссылки: Установка iisnode в Windows
PS: Возможно, вам придется установить соответствующую версию модуля iisnode в соответствии с вашей версией IIS (Экспресс / обычная и т. Д.).
У меня 64-разрядная ОС Windows 7 с IIS 7.5.Я установил iisnode .После этого я следовал инструкциям, перечисленным на этой странице .Затем он загрузил мое приложение Node.js на http://localhost:82/
.Вам также может потребоваться предоставить пользователю IIS_IUSRS
надлежащие разрешения (READ
) для папки, в которой вы размещаете веб-приложение Node.js, а также для его родительской папки (приветствуются новые приемы!).
Далее следует мой рабочий web.config
из веб-приложения узла на localhost: 82.Пожалуйста, отредактируйте согласно вашей машине.
<configuration>
<system.webServer>
<!-- indicates that the server.js file is a node.js application
to be handled by the iisnode module -->
<handlers>
<add name="iisnode" path="server.js" verb="*" modules="iisnode" />
</handlers>
<globalModules>
<add name="iisnode" image="C:\Program Files (x86)\iisnode\iisnode.dll" />
</globalModules>
<rewrite>
<rules>
<rule name="sendToNode">
<match url="/*" />
<action type="Rewrite" url="server.js" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
Пример Barebones server.js
следует.Пожалуйста, установите Express для Node.js, если он еще не установлен.
var express = require('express');
var app = express();
app.get('/', function (req, res) {
res.send('Express is working on IISNode!');
});
app.listen(process.env.PORT);