【问题标题】:Default root (server.js) file for node.js site on windows azureWindows azure 上 node.js 站点的默认根 (server.js) 文件
【发布时间】:2013-06-14 18:00:19
【问题描述】:

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

node server.js

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

node index.js

有人知道这是否可以配置吗?即使是这样,除了server.js 之外的其他内容是否通常被认为是不好的形式?

【问题讨论】:

  • 我可能弄错了,但我怀疑他们没有运行node server.js,而是npm start,默认为node server.js,这就是为什么克里斯的答案是设置你的包的主要部分。 json。也可以设置启动脚本,详见npmjs.org。
  • 你有没有让这个工作?我尝试设置一个重新定义“开始”文件的 package.json 文件,但看起来 Azure 专门寻找 server.js 文件,所以它不适合我。

标签: node.js azure


【解决方案1】:

对我有用的是Generalhenry 上面的建议:

在 package.json 中,添加:

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

【讨论】:

    【解决方案2】:

    以上解决方案都不适合我。寻找另一件事,我找到了解决方案。您必须在 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>
    

    【讨论】:

      【解决方案3】:

      您是在询问 Azure 网站吗?

      尝试设置

      "main": "./index.js"
      

      在您的 package.json 文件中。

      【讨论】:

        猜你喜欢
        • 2012-08-21
        • 1970-01-01
        • 2023-03-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-03-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多