It seems like Windows Azure expects that your node.js site should run with:
node server.js
Is there a way to change this command? Specifically, my application's root is index.js
intead of server.js
, so I'd prefer that it did:
node index.js
Anyone know if this is configurable? And even if it is, is it generally considered bad form to have anything other than server.js
?
What worked for me was generalhenry's suggestion above:
In package.json, add:
"scripts": {
"start": "node index.js"
}
None of the solutions above worked for me. Searching for another thing, i've found the solution. You have to set your entrypoint in web.config file which is a xml file. Check this example file (you just have to replace server.js with whatever you want):
<?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>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With