nestjs到天蓝色的Windows应用程序服务-web.config设置

问题描述 投票:0回答:2

从昨天开始,我一直在尝试将nestjs api部署到azure,但没有成功。最初,我试图将其推向linux云服务计划,并能够通过vs代码进行部署,在蔚蓝日志中看到该应用程序已成功启动,但在经过一些挖掘后,它不会从我的端点返回任何数据,我一直看到一些容器故障。我尝试了一段时间的故障排除,然后决定尝试在Windows应用服务上进行设置。

[遵循本指南:https://docs.microsoft.com/en-us/azure/app-service/app-service-web-get-started-nodejs,我将我的nestjs应用程序推送到Windows上的azure应用程序服务上,再次失败。我在那篇文章中删除了回购,以将其与我的回购进行比较,它们在web.config中为nodejs应用程序指向index.js的入口。该index.js在我的nestjs应用程序中不存在,我进行了一些研究,发现在编译完所有内容后,nestjs应用程序的入口点就是main.js。该示例项目与我的nestjs应用程序还有另一个区别,那就是nestjs应用程序的main.js文件似乎位于dist文件夹中,而不是在wwwroot路径的根目录中。

我的nestjs应用程序显然不包含开箱即用的web.config,因此我以hello world repo的示例创建了一个web.config。我将iisnode路径更新为dist / main.js,并将重写路径也更新为相同的路径/文件,因为这是我唯一想做的。

唯一的通配符是我正在天蓝色更改的WEBSITE_NODE_DEFAULT_VERSION应用程序设置的节点版本号...我不确定应为我的nestjs应用程序使用哪个版本。我当前的本地版本是12.16.2,但是当我将版本更改为Azure时,它不起作用。

我不确定在这里还有什么尝试-如果可以解决Docker容器问题,我可以尝试回到linux,但那似乎是一个死胡同。如果我可以使此web.config / version正常工作,我认为在Windows路线上继续走下去可能会更有运气。

main.js是否在dist文件夹中,我应该将web.config指向该文件夹?天蓝色有最大版本限制吗?还有其他我可能会想念的东西吗?

编辑:打开流日志后-我现在看到此异常

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)

经过一番谷歌搜索后,我发现该异常在较旧版本的节点(<4)中很常见。我已经远远超出了那个版本,并且已经将天蓝色设置为远远超出了那个版本。

node.js azure azure-web-sites nestjs
2个回答
0
投票

我已经阅读了您有关Nestjs部署的两篇文章。

现在,我认为无论您使用什么平台,它都不会成功。因为天青支持我们Web应用程序的基本环境。尽管您的应用基于nodejs,但是当您运行npm run start时,实际上是在运行nest start。基本环境不支持npm i -g @ nestjs/cli。因此,我建议您使用docker创建映像,然后进行部署。


0
投票

我在朋友的帮助下整理了一下。在azure cli中运行此命令,可以使用linux安装程序解决所有问题。

© www.soinside.com 2019 - 2024. All rights reserved.