【问题标题】:cannot start nodejs web api hosted in Azure无法启动 Azure 中托管的 nodejs Web api
【发布时间】: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


【解决方案1】:

作为托管在 Azure App Services 上的应用程序的根目录路径,是 D:\home\site\wwwroot。而关于nodejs应用,Azure Fabric会在server.js这样的根目录下找到入口脚本。请求通过根目录中的web.config 处理。如果缺少server.jsweb,config文件,会出现404错误。

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

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

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

如有任何疑问,请随时告诉我。

【讨论】:

  • 看起来你只需要拥有这个结构,现在它对我有用,尽管它是一个巨大的痛苦。谢谢加里。
猜你喜欢
  • 2023-03-12
  • 1970-01-01
  • 2013-08-13
  • 1970-01-01
  • 2021-01-23
  • 2016-04-07
  • 1970-01-01
  • 1970-01-01
  • 2020-02-18
相关资源
最近更新 更多