【发布时间】:2020-04-17 04:29:50
【问题描述】:
从昨天开始,我一直在尝试将我的 nestjs api 部署到 azure,但没有成功。起初我试图将它推送到一个 linux 云服务计划并且能够从 vs 代码部署它,在 azure 日志中看到该应用程序已成功启动,但它不会从我的端点返回任何数据并且经过一些挖掘,我一直看到一些容器故障。我尝试了一段时间的故障排除,然后决定尝试在 Windows 应用程序服务上进行设置。
按照本指南:https://docs.microsoft.com/en-us/azure/app-service/app-service-web-get-started-nodejs,我将我的 nestjs 应用程序推送到 Windows 上的 azure 应用程序服务,但它再次不起作用。我拉下那篇文章中的存储库以将其与我的进行比较,它们在 web.config 中有指向 index.js 的 nodejs 应用程序的入口点。我的nestjs应用程序中不存在那个index.js,我做了一些研究,发现编译完所有内容后nestjs应用程序的入口点是main.js。该示例项目和我的nestjs 应用程序的另一个区别在于nestjs 应用程序的main.js 文件似乎位于dist 文件夹中,而不是位于wwwroot 路径的根目录中。
我的 nestjs 应用程序显然不包含开箱即用的 web.config,因此我使用 hello world 存储库作为示例创建了一个。我将 iisnode 路径更新为 dist/main.js 并将重写路径更新为相同的路径/文件,因为这是我唯一能想到的。
唯一的另一个通配符是我在天蓝色中为 WEBSITE_NODE_DEFAULT_VERSION 应用程序设置更改的节点版本号......我不确定我的 nestjs 应用程序应该是什么。我当前的本地版本是 12.16.2,但是当我将版本更改为 azure 上的版本时,它不起作用。
我不确定这里还有什么可以尝试的——如果我可以解决 docker 容器问题,我会尝试回到 linux,但这似乎是一个死胡同。如果我能让这个 web.config / version 工作正常,我想我可能会有更多的运气继续沿着 Windows 路线前进。
main.js 是否在我应该指向我的 web.config 的 dist 文件夹中? azure 有最大版本限制吗?还有什么我可能遗漏的吗?
编辑:打开流式日志后 - 我现在看到了这个异常
SyntaxError:在严格模式下使用 const。 在 Module._compile (module.js:434:25) 在 Object..js (module.js:464:10) 在 Module.load (module.js:353:31) 在 Function._load (module.js:311:12) 在 Module.require (module.js:359:17) 在需要(module.js:375:17) 在对象。 (D:\Program Files (x86)\iisnode\interceptor.js:459:1) 在 Module._compile (module.js:446:26) 在 Object..js (module.js:464:10) 在 Module.load (module.js:353:31)
经过一番谷歌搜索,我发现旧版本的节点 (
【问题讨论】:
标签: node.js azure azure-web-app-service nestjs