如何在IISNode上初始化koa node.js应用程序应用程序(Azure WebSites)

时间:2014-09-15 09:48:33

标签: node.js azure-web-sites ecmascript-harmony koa kudu

我们目前正在Azure网站上将自托管的koa应用程序移动到IISNode ..

在自托管中,我们通过调用初始化应用程序     node --harmony ./bin/application 请求然后转到./index.js。

但是我们无法找到如何设置IISNode以在初始化时调用“bin / application”。

有什么想法吗? 感谢

2 个答案:

答案 0 :(得分:1)

不确定这是同一个场景,但是当express.js开始使用./bin/www作为express.js应用程序的入口点时,我遇到了类似这样的事情。最初它打破了一切,但现在我们寻找"脚本" package.json中的条目告诉Azure如何为应用程序配置IISNode。对于express,它会生成一个"脚本"条目看起来像这样:

"脚本":{     " start":" node ./bin/www"   },

当Azure看到这个时,它会在服务器上生成一个web.config,它使用./bin/www作为入口点。

所以...我首先说,尝试添加一个"脚本"输入指向./bin/application文件的package.json,并尝试将其部署到Azure。希望这只是有效的'。如果没有,请尝试使用https://gist.github.com/Blackmist/8677359708fd30779c77作为内容将web.config添加到应用程序的根目录。这应该将IISNode指向./bin/application文件作为入口点,并且Azure网站在看到"脚本时会自动生成#34; package.json文件中的条目。

您遇到的另一个问题是使用Node.js v0.11.13,我不相信默认情况下会包含在Azure网站中,并传递--harmony开关。 http://azure.microsoft.com/en-us/documentation/articles/nodejs-specify-node-version-azure-apps/有一节介绍如何将node.js版本作为您网站的一部分。在iisnode.yml文件中,您希望拥有类似于以下内容的行:

nodeProcessCommandLine:d:\ home \ site \ wwwroot \ bin \ node.exe --harmony

我相信这应该可以使这项工作。

答案 1 :(得分:0)

您可以为Azure网站设置自定义部署脚本。

此博文包含有关如何使用它的详细信息: http://blog.amitapple.com/post/38417491924/azurewebsitecustomdeploymentpart1/#.VBcrnPldXIc