好像Windows Azure的期待您的node.js的網站應該與運行:默認的根(server.js)文件的node.js網站上的Windows Azure
node server.js
有沒有辦法來改變這種命令?具體來說,我的應用程序的根是index.js
這一翻譯的server.js
,所以我更喜歡它做的事:
node index.js
任何人都知道這是可配置?即使是這樣,除了server.js
以外,通常認爲它是不好的形式嗎?
好像Windows Azure的期待您的node.js的網站應該與運行:默認的根(server.js)文件的node.js網站上的Windows Azure
node server.js
有沒有辦法來改變這種命令?具體來說,我的應用程序的根是index.js
這一翻譯的server.js
,所以我更喜歡它做的事:
node index.js
任何人都知道這是可配置?即使是這樣,除了server.js
以外,通常認爲它是不好的形式嗎?
什麼工作對我來說是上述generalhenry的建議:
在的package.json,補充:以上爲我工作
"scripts": {
"start": "node index.js"
}
您在詢問Azure網站嗎?
嘗試設置
"main": "./index.js"
在你的package.json文件。
的解決方案都不是。尋找另一件事,我找到了解決辦法。您必須在web.config文件中設置您的入口點,該文件是一個xml文件。檢查此示例文件(你就必須用任何你想要更換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>
我可能是錯的,但我懷疑他們沒有運行'節點server.js'而是'NPM啓動'默認爲'node server.js'這就是爲什麼chris的答案是設置你的package.json的main。您也可以設置啓動腳本,詳情請參閱npmjs.org。 – generalhenry 2013-03-16 00:56:34
你有沒有得到這個工作?我嘗試設置一個重新定義'start'文件的package.json文件,但它看起來像Azure特意查找server.js文件,因此它不適用於我。 – martega 2013-05-03 23:16:28