【发布时间】:2016-09-19 04:32:22
【问题描述】:
学习nodejs并开始使用restify创建我自己的restful API。
我创建了一个非常简单的server.js 文件,它基本上包含一个 hello world 类型的示例,例如:
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,我可以很好地测试我的API调用http://localhost:3978/api/messages。
我已将我的代码部署到 bitbucket 中,现在我想使用 App Services 在 Azure 中托管这些 API。
我的项目结构是这样的:
/topfolder
-/myproject
-/node_modules
-/node_modules...
server.js
package.json
index.html
当我在 Azure 中设置新的应用服务时,我可以看到部署从 BB 接收代码,但该服务从未响应我的请求。
我已经设置了应用程序的主路径:/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 文件似乎不是被调用或启动的。
如何调试这里发生的事情?
Azure 是否在此方案中使用 packages.json 文件?
谢谢。
【问题讨论】:
-
如果您通过 FTP 进入您的 azure 网站,则某处有一个日志。没有很多目录可供浏览,但在目录结构中项目上方的文件之一中,我非常肯定有一个日志文件应该包含从您的应用程序记录的任何控制台输出。
-
您使用什么网址来访问您的托管 api?
-
@Chev 谢谢,那是调试控制台,我环顾四周,但没有任何反应。有什么线索吗?
-
@DavidMakogon 即时访问:mysite.azurewebsites.net/api/messages 作为 http 发布请求。在本地,我点击了localhost:3978/api/messages,它有效(当我确保该节点当然正在运行时)
标签: javascript node.js azure restify