无法启动在Azure中托pipe的nodejs web api

学习nodejs并开始使用restify创build我自己的restful API。

我创build了一个非常简单的server.js文件,其中包含一个基本上是hello worldtypes的例子,启动如下:

 server.post('/api/messages', servicemanager.verifyFramework(), servicemanager.listen()); server.get(/.*/, restify.serveStatic({ 'directory': '.', 'default': 'index.html' })); server.listen(process.env.port || 3978, function () { console.log('%s listening to %s', server.name, server.url); }); 

在当地工作正常。 我不能打http:// localhost:3978 ,我可以testing我的API调用只需调用http:// localhost:3978 / api / messages 。

我已将代码部署到bitbucket中,现在我想使用App Services在Azure中托pipe这些API。

我的项目结构是这样的:

 /topfolder -/myproject -/node_modules -/node_modules... server.js package.json index.html 

当我在Azure中设置新的应用程序服务时,我可以看到部署从BB接收代码,但该服务从不响应我的请求。

我已经设置了应用程序的主path: /site/wwwroot/topfolder/myproject ,当我导航到http://myproject.azurewebsites.net时,我可以看到index.html ,所以这很好。

我实际上得到一个404错误: The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.

有很多关于如何使用bitbucket设置连续部署的例子,而且大多数情况下,它们似乎都可以工作,但是我的server.js文件似乎不是被调用或启动的。

我怎样才能debugging这里发生了什么?

Azure在这种情况下使用packages.json文件吗?

谢谢。

作为承载在Azure App Services上的应用程序的根目录path是D:\home\site\wwwroot 。 而关于nodejs应用程序,Azure结构将在根目录(如server.jsfind入口脚本。 并且通过根目录下的web.config处理请求。 如果缺lessserver.jsweb,config文件,将会发生404错误。

您可以尝试修改或您的应用程序的结构,如:

 -/node_modules -/node_modules... server.js package.json index.html 

然后,通过GIT或BB将应用程序部署到Azure,Azure部署任务将运行命令npm install并在根目录中生成web.config wile。

任何进一步的关注,请随时让我知道。