Windows azure上node.js站点的默认根(server.js)文件

Mik*_*iro 8 azure node.js

似乎Windows Azure期望您的node.js站点应该运行:

node server.js
Run Code Online (Sandbox Code Playgroud)

有没有办法改变这个命令?具体来说,我的应用程序的root是index.jsintead server.js,所以我更喜欢它:

node index.js
Run Code Online (Sandbox Code Playgroud)

任何人都知道这是否可配置?即使它是,通常认为除了以外还有什么不好的形式server.js

Mik*_*iro 14

对我来说有用的是上述的通才的建议:

在package.json中,添加:

"scripts": {
    "start": "node index.js"
}
Run Code Online (Sandbox Code Playgroud)


Tib*_*xim 8

以上解决方案都不适合我.寻找另一件事,我找到了解决方案.您必须在web.config文件中设置入口点,该文件是xml文件.检查此示例文件(您只需将server.js替换为您想要的任何内容):

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <system.webServer>         
      <handlers>
           <add name="iisnode" path="server.js" verb="*" modules="iisnode"/>
     </handlers>
      <rewrite>
           <rules>
                <rule name="LogFile" patternSyntax="ECMAScript" stopProcessing="true">
                     <match url="iisnode"/>
                </rule>
                <rule name="NodeInspector" patternSyntax="ECMAScript" stopProcessing="true">                    
                    <match url="^server.js\/debug[\/]?" />
                </rule>
                <rule name="StaticContent">
                     <action type="Rewrite" url="public{{REQUEST_URI}}"/>
                </rule>
                <rule name="DynamicContent">
                     <conditions>
                          <add input="{{REQUEST_FILENAME}}" matchType="IsFile" negate="True"/>
                     </conditions>
                     <action type="Rewrite" url="server.js"/>
                </rule>
           </rules>
      </rewrite>
   </system.webServer>
 </configuration>
Run Code Online (Sandbox Code Playgroud)