3

我无法让 iisnode 运行我的节点应用程序。我的目录结构是

iis-site
   -client
   -server
      -server.js

如何让 iisnode 指向嵌套的 .js 文件?我试过这个,但它服务于 server.js 而不是执行它。

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

<rule name="default">
       <match url="/*" />
        <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
        <action type="Rewrite" url="server/server.js" />
</rule>
4

2 回答 2

8

我最终将此作为一个问题发布在 GitHub 项目上,并在那里得到了答案

基本上,该方法是将文件保存在需要引导应用程序.js的目录的根目录中。.js

前任:

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

<rule name="default">
       <match url="/*" />
        <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
        <action type="Rewrite" url="iisnode.js" />
</rule>

并且iisnode.js有一行代码:require(__dirname + '\\server\\server.js');

于 2014-05-07T14:03:05.393 回答
2

我有点挣扎,这是我的解决方案,没有任何额外的文件

处理程序

<handlers>
        <add name="iisnode" path="dist/index.js" verb="*" modules="iisnode"/>

        <!-- Remote debugging (Azure Website with git deploy): Uncomment NtvsDebugProxy handler below.
        Additionally copy Microsoft.NodejsTools.WebRole to 'bin' from the Remote Debug Proxy folder.-->
        <!--<add name="NtvsDebugProxy" path="ntvs-debug-proxy/7afabecd-23d0-4ac1-a682-c36ef59e1480" verb="*" resourceType="Unspecified"
          type="Microsoft.NodejsTools.Debugger.WebSocketProxy, Microsoft.NodejsTools.WebRole"/>-->
</handlers>

重写规则

<rewrite>
        <rules>
            <clear/>
            <!-- Remote debugging (Azure Website with git deploy): Uncomment the NtvsDebugProxy rule below. -->
            <!--<rule name="NtvsDebugProxy" enabled="true" stopProcessing="true">
              <match url="^ntvs-debug-proxy/.*"/>
            </rule>-->
            <rule name="app" enabled="true" patternSyntax="ECMAScript" stopProcessing="true">
                <match url="iisnode.+" negate="true"/>
                <conditions logicalGrouping="MatchAll" trackAllCaptures="false"/>
                <action type="Rewrite" url="dist/index.js"/>
            </rule>
        </rules>

如您所见,我的应用程序入口点位于 dist/index.js

嘉宝

于 2017-05-03T11:52:47.450 回答