似乎Windows Azure期望您的node.js站点应该运行:
node server.js
有没有办法改变这个命令?具体来说,我的应用程序的根是index.js
整数server.js
,所以我更喜欢它:
node index.js
任何人都知道这是否可配置?即使它是,除了server.js
之外还有其他任何东西,通常被认为是不好的形式吗?
答案 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文件中。