8

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?

2
  • 4
    I may be mistaken, but I suspect that they're not running node server.js but rather npm start which defaults to node server.js which is why chris's answer is to set the main of your package.json. You can also set the start script, see npmjs.org for the details. Commented Mar 16, 2013 at 0:56
  • Did you ever get this to work? I tried setting up a package.json file that redefined the 'start' file but it looks like Azure is specifically looking for a server.js file so it isn't working for me. Commented May 3, 2013 at 23:16

3 Answers 3

14

What worked for me was generalhenry's suggestion above:

In package.json, add:

"scripts": {
    "start": "node index.js"
}
Sign up to request clarification or add additional context in comments.

Comments

8

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>

Comments

0

You are asking about Azure Web Sites?

Try to set

"main": "./index.js"

in your package.json file.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.