2013-03-15 9 views
7

Wydaje się, że Windows Azure spodziewa się, że witryna node.js należy uruchomić z:Domyślnie root (server.js) złożyć wniosek node.js miejscu na Windows Azure

node server.js 

Czy istnieje sposób, aby zmienić tę komendę ? Konkretnie, korzeń mój wniosek jest index.js intead server.js, więc wolałbym, że zrobił:

node index.js 

Ktoś wie, czy jest to konfigurowalne? A nawet jeśli tak jest, czy ogólnie uważa się za złą formę posiadanie czegoś innego niż server.js?

+4

może się mylę, ale podejrzewam, że oni nie uruchomiony węzeł server.js' '' ale raczej początek npm 'który domyślnie jest ustawiony na' node server.js', dlatego też chris odpowiada, aby ustawić główną część pliku package.json. Możesz również ustawić skrypt startowy, zobacz npmjs.org, aby poznać szczegóły. – generalhenry

+0

Czy kiedykolwiek to działa? Próbowałem skonfigurować plik package.json, który przedefiniował plik "start", ale wygląda na to, że Azure szuka pliku server.js, więc nie działa on dla mnie. – martega

Odpowiedz

13

Co pracował dla mnie była sugestia generalhenry jest powyżej:

W package.json dodać:

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

Pytasz o witryny internetowe Azure?

Spróbuj ustawić

"main": "./index.js" 

w pliku package.json.

6

Żadne z powyższych rozwiązań pracował dla mnie. Szukając innej rzeczy, znalazłem rozwiązanie. Musisz ustawić punkt początkowy w pliku web.config, który jest plikiem xml. Sprawdź ten przykładowy plik (wystarczy wymienić server.js z cokolwiek chcesz):

<?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> 
Powiązane problemy