2013-03-15 3 views
7

Sembra che Windows Azure si aspetta che il tuo sito node.js dovrebbe funzionare con:radice di default (server.js) il file per il sito Node.js su Windows Azure

node server.js 

C'è un modo per cambiare questo comando ? In particolare, la radice della mia domanda è index.js intead di server.js, quindi preferirei che lo ha fatto:

node index.js 

Qualcuno sa se questo è configurabile? E anche se lo è, è generalmente considerato una cattiva forma avere qualcosa di diverso da server.js?

+4

posso sbagliarmi, ma ho il sospetto che non stanno eseguendo 'nodo server.js' ma piuttosto' inizio NPM 'quale valore predefinito' node server.js', ecco perché la risposta di chris è impostare il main del pacchetto package.json. È inoltre possibile impostare lo script di avvio, vedere npmjs.org per i dettagli. – generalhenry

+0

Hai mai funzionato? Ho provato a configurare un file package.json che ha ridefinito il file 'start' ma sembra che Azure stia cercando un file server.js in modo specifico, quindi non funziona per me. – martega

risposta

13

Che cosa ha funzionato per me è stato il suggerimento di generalhenry sopra:

In package.json, aggiungere:

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

Si sta chiedendo informazioni sui siti Web di Azure?

tenta di impostare

"main": "./index.js" 

nel file package.json.

6

Nessuna delle soluzioni sopra ha funzionato per me. Cercando un'altra cosa, ho trovato la soluzione. Devi impostare il tuo entrypoint nel file web.config che è un file xml. Controllare questo file di esempio (basta sostituire server.js con quello che vuoi):

<?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> 
Problemi correlati