- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
从昨天开始,我一直在尝试将 Nestjs api 部署到 azure,但没有成功。起初,我试图将其推送到 Linux 云服务计划,并能够从 vs code 部署它,在 azure 日志中看到该应用程序已成功启动,但它不会从我的端点返回任何数据,经过一番挖掘后,我不断看到一些容器故障。我尝试对此进行故障排除一段时间,然后决定尝试将其设置在 Windows 应用程序服务上。
按照本指南操作:https://learn.microsoft.com/en-us/azure/app-service/app-service-web-get-started-nodejs ,我将 Nestjs 应用程序推送到 Windows 上的 azure 应用程序服务,但它再次不起作用。我拉下了那篇文章中的存储库,将其与我的进行比较,他们在 web.config 中为 Nodejs 应用程序提供了指向 index.js 的入口点。我的 Nestjs 应用程序中不存在该 index.js,我做了一些研究,发现编译所有内容后,nestjs 应用程序的入口点是 main.js。该示例项目和我的 Nestjs 应用程序还有另一个区别,即 NestJS 应用程序的 main.js 文件似乎位于 dist 文件夹中,而不是位于 wwwroot 路径的根目录中。
我的 Nestjs 应用程序显然不包含开箱即用的 web.config,因此我使用 hello world 存储库作为示例创建了一个 web.config。我将 iisnode 路径更新为 dist/main.js 并将重写路径也更新为同一路径/文件,因为这是我唯一能想到做的事情。
唯一的其他通配符是我在 azure 中为 WEBSITE_NODE_DEFAULT_VERSION 应用程序设置更改的 Node 版本号...我不确定我的 Nestjs 应用程序应该是什么。我当前的本地版本是12.16.2,但是当我将版本更改为azure上的版本时,它不起作用。
我不知道这里还能尝试什么 - 如果我能解决 docker 容器问题,我会很好地尝试回到 Linux,但这似乎是一个死胡同。我想如果我能让这个 web.config/version 的东西工作的话,我可能会更幸运地继续沿着 Windows 路线前进。
main.js 是否位于 dist 文件夹中,我应该将 web.config 指向该文件夹? azure 有最大版本限制吗?还有什么我可能遗漏的吗?
编辑:打开流日志后 - 我现在看到此异常
SyntaxError: Use of const in strict mode. at Module._compile (module.js:434:25) at Object..js (module.js:464:10) at Module.load (module.js:353:31) at Function._load (module.js:311:12) at Module.require (module.js:359:17) at require (module.js:375:17) at Object. (D:\Program Files (x86)\iisnode\interceptor.js:459:1) at Module._compile (module.js:446:26) at Object..js (module.js:464:10) at Module.load (module.js:353:31)
经过一番谷歌搜索后,我发现旧版本的 Node (< 4)中很常见异常。我远远超出了该版本,并且将 azure 设置为远远超出该版本的版本。
最佳答案
在 friend 的帮助下,我解决了这个问题。在 azure cli 中运行此命令可以使用 Linux 设置解决问题。
az webapp config set --resource-group myResourceGroup --name myAppServiceName --startup-file "npm run start:prod"
关于node.js - Nestjs 到 Azure Windows 应用程序服务 - web.config 设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61232654/
我在开发应用程序时将配置保存在 .env 文件中。 这是我的 app.module.ts: @Module({ imports: [ ConfigModule.forRoot({ isGl
我正在使用我购买的 akveo 后端包,虽然在开发模式下一切似乎都在生产中运行良好,但出现了以下错误,但我对 nestjs 本身并不熟悉。 有谁知道这里发生了什么? node_modules/@nes
我刚刚开始使用 Nestjs我想知道如何使用路由前缀或通过 Express Router 实例对我的 API 进行版本控制? 理想情况下,我希望通过以下方式访问端点: /v1 /v2 等等,这样我就可
我想了解将服务提供商注入(inject) NestJS Controller 的目的是什么?这里的文档在这里解释了如何使用它们,这不是这里的问题:https://docs.nestjs.com/pro
我正在使用@goevelup/nestjs-rabbitmq库构建一个NestJS应用程序,以便将消息发布到rabbitmq交易所。。我正在AppModule中导入和配置RabbitMQ模块(这部分似
我正在使用@goevelup/nestjs-rabbitmq库构建一个NestJS应用程序,以便将消息发布到rabbitmq交易所。。我正在AppModule中导入和配置RabbitMQ模块(这部分似
我正在制作 @nestjs/swagger生成api文档。但是如何为经过身份验证的路由生成文档? 嵌套版本 λ nest i NodeJS Version : v10.16.0 [Nest Infor
NestJs 允许导出模块和提供者。它们有什么区别? 例子: // Reusable module @Module({ providers: [ServiceA], exports: [Service
我有一个返回字符串的 Controller 处理程序。 // Controller.ts import { Controller, Get, UseInterceptors } from '@nest
在 NestJS API 上,我想在实体中使用模块服务,以使用非数据库属性填充该实体。 在我的例子中,我想获得我正在检索的类别的文章数量。 @Entity({ name: 'categories' }
我正在设置一个新的 NestJS 应用程序,我刚刚添加了类验证器以验证 Controller 输入,但它似乎被完全忽略了。这是 DTO: import {IsString} from 'class-v
我想要一些环境,比如说development , production , test .这些环境应该是独立的,并使用它们自己的配置参数集,例如对于 DB、SERVER_PORT、USER 等。 它们不
我觉得 this thread 和 this thread 的组合是我需要实现的,我无法将它们绘制在一起。 我有一个包含 enum 的 DTO。 使用 Postman,我发送 PurchasableT
我是 NestJs 的新手,我创建了一个回退异常过滤器,现在我想知道如何使用它。换言之,如何将其导入我的应用程序? 这是我的后备异常过滤器: @Catch(HttpException) export
我在oracle数据库中有存储过程,我想在NestJs中调用它。 如何在 NestJs 中调用存储过程? 这是我的存储过程 PROCEDURE pipeline_critical (
我想在 nestjs 的验证中使用正则表达式。 例如: 正则表达式 pagePattern = '[a-z0-9\-]+'; 方法 @Get('/:article') getIndex(
我想将配置字符串传递给管道,但也想注入(inject)服务。 NesJs 文档描述了如何相互独立而不是一起执行这两项操作。举个例子: 管道.ts @Injectable() export class
我正在尝试对具有来自 nestjs 护照模块的 AuthGuard 的路由进行端到端测试,但我真的不知道如何处理它。当我运行测试时,它说: [ExceptionHandler] Unknown aut
我正在编写一个 NestJS 应用程序。一些端点支持排序,例如http://127.0.0.1:3000/api/v1/members?sort=-id&take=100 这意味着按 id 降序排序。
我想在 nestjs 的验证中使用正则表达式。 例如: 正则表达式 pagePattern = '[a-z0-9\-]+'; 方法 @Get('/:article') getIndex(
我是一名优秀的程序员,十分优秀!