2013-03-15 3 views
7
그것은 윈도우 Azure처럼 보인다

이 Node.js를 사이트와 함께 실행해야 것으로 예상 푸른에 Node.js를 사이트에 파일을 ? 특히, 내 응용 프로그램의 루트는 server.jsindex.js intead이다, 그래서 그것을했던 것을 선호하는 것 :이 구성 할 경우기본 루트 (server.js) 창

node index.js 

누구나 알아? 그리고 그것이 그렇다고해도, 일반적으로 server.js 이외의 것이 있으면 나쁜 형태로 간주됩니까?

+4

내가 잘못 될 수 있지만, 나는 그들이 노드 server.js''실행하지 않을 것으로 생각하지만, 오히려'NPM 시작 '기본값은'node server.js'입니다. 그래서 chris의 답은 package.json의 메인을 설정하는 것입니다. 시작 스크립트를 설정할 수도 있습니다. 자세한 내용은 npmjs.org를 참조하십시오. – generalhenry

+0

이것을 작동 시키셨습니까? 나는 '시작'파일을 재정의 한 package.json 파일을 설정하려했지만 Azure가 특별히 server.js 파일을 찾고있는 것처럼 보였다. 그래서 나를 위해 작동하지 않는다. – martega

답변

13

위 generalhenry의 제안이었다 솔루션의

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

당신은 Azure 웹 사이트에 대해 질문합니까?

은 package.json 파일에

"main": "./index.js" 

을 설정하십시오. package.json에서

추가, : 나를 위해 일한 무엇

6

아무도 나를 위해 일한 위. 다른 것을 찾으면 해결책을 찾았습니다. XML 파일 인 web.config 파일에 엔트리 포인트를 설정해야합니다. 이 예제 파일을 확인하십시오 (당신은 당신이 원하는대로와 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>