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

时间:2013-03-15 18:09:54

标签: node.js azure

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

node server.js

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

node index.js

任何人都知道这是否可配置?即使它是,除了server.js之外还有其他任何东西,通常被认为是不好的形式吗?

3 个答案:

答案 0 :(得分:14)

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

在package.json中,添加:

"scripts": {
    "start": "node index.js"
}

答案 1 :(得分: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>

答案 2 :(得分:0)

您问的是Azure网站吗?

尝试设置

"main": "./index.js"

在你的package.json文件中。