无法启动在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.js
find入口脚本。 并且通过根目录下的web.config
处理请求。 如果缺lessserver.js
或web,config
文件,将会发生404错误。
您可以尝试修改或您的应用程序的结构,如:
-/node_modules -/node_modules... server.js package.json index.html
然后,通过GIT或BB将应用程序部署到Azure,Azure部署任务将运行命令npm install
并在根目录中生成web.config
wile。
任何进一步的关注,请随时让我知道。