2013-03-15 6 views
7
これは、Windows Azureのように思える

があなたのNode.jsサイトがで実行する必要があることを期待AZUREにNode.jsのサイト用のファイル?具体的には、自分のアプリケーションのルートはserver.jsのintead index.jsあるので、私はそれがなかったことを好むだろう:これは設定可能であればデフォルトルート(server.js)ウィンドウが

node index.js 

誰もが知っていますか?そして、たとえそうであっても、server.js以外のものを持っているのは悪い形だと一般的に考えられていますか?

+4

私は誤解されるかもしれないが、私は彼らがノードserver.js' '実行していないと思われるのではなく、' NPM開始'これはデフォルトで' node server.js'です。これはchrisの答えがpackage.jsonのメインを設定する理由です。起動スクリプトを設定することもできます。詳しくは、npmjs.orgを参照してください。 – generalhenry

+0

これはこれまでうまく動作しましたか?私は 'start'ファイルを再定義したpackage.jsonファイルを設定しようとしましたが、Azureが特にserver.jsファイルを探しているように見えます。 – martega

答えて

13

は、上記generalhenryの提案でした。別のものを探して、私は解決策を見つけました。 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> 
0

あなたはAzureのWebサイトについて質問していますか?

は、あなたのpackage.jsonファイルで

"main": "./index.js" 

を設定してください。追加していない、package.jsonで

:私のために働いた上記のソリューションの

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

なしを私のために働いた何

関連する問題