控制器嵌套路由内的Nestjs验证失败(应为数字字符串)

我有一个使用@controller'tasks'装饰器的控制器。在这个控制器中,我有一个路由@Get'/week,通常请求应该转到localhost:4000/tasks/week,但它返回了一个错误的请求: { "statusCode": 400, "error": "Bad Request", "message": "Validation failed (numeric string is expected)" } 下面是我的代码: @Controller('tas

Nestjs在身份验证期间请求作用域数据

在nest.js中,express中res.locals的等效值是什么? 换句话说,我可以通过什么方式在中间件和控制器之间传递有关用户的数据? 在nestjs中,通常会将该数据分配给请求,因为正如您所说的,直接使用响应将中断拦截器和中间件的管道 从控制器页面: 从拦截器页面: 您是否尝试过查看nest.js和?响应对象可以提供给两者,也可以像在原生express应用程序中一样进行操作。我做到了,如果我使用响应对象,我就不能再使用拦截器了。

Nestjs 是否可以覆盖exceptions-zone.ts中的默认_TEARDOWN函数?

我正在尝试使用NestJS框架创建一个应用程序,我想检查应用程序上下文中是否有特定的服务,但是,框架的默认行为是在上下文中找不到服务时退出流程 我已经用try…catch包围了get方法,但由于process.exit(1)执行,它无法工作 专用异步loadConfigService(服务器:INestApplication):承诺{ 试一试{ this.configService=wait server.get(configService,{strict:false}); }捕获(错误){ t

Nestjs 类型为don';t使用ormconfig.json文件

我正在配置nestjs或mconfig.json,但typeorm没有连接到mysql 8数据库,它会在cli中显示这一点 [Nest] 13324 - 2020-01-14 4:15:32 [NestFactory] Starting Nest application... [Nest] 13324 - 2020-01-14 4:15:32 [InstanceLoader] AppModule dependencies initialized +513ms [Nest] 133

Nestjs 如果falsy,则转换值

我正在使用类验证器包验证我的DTO。我通过 app.useGlobalPipes( new ValidationPipe({ transform: true, }), ); 在我的main.ts文件中,如文档中所述 我的DTO中有一个可选的配置字段。如果此字段不存在,则应将其转换为空对象。这里描述了转换装饰器 我希望能想出这个解决方案: export class MyDTO { @IsObject() @IsOptional() @Transform(confi

Nestjs 类型化关系-按id保存

我对这些关系有点困惑,因为我习惯于按id保存关系,而我找到的文档和示例建议获取整个对象并使用它(这难道不奇怪吗?) 我在github上发现了这个问题(),他们建议只使用id属性的对象,但这是2017年发布的。这是一个好方法吗?这仍然是唯一的方法吗?(我觉得这很蹩脚) 异步创建(@Body()product:product){ product.category={id:product.category}; 返回{有效载荷:等待this.repository.persist(product)}; }

NestJs-如何获取处理程序的url?

我想将用户重定向到服务器中的另一个url,但我不想硬编码url,如res.redirect('/hello\u world')。相反,我只想指定指定控制器的处理程序url,如res.redirect(HelloWorldController.handlerName.url)其中HelloWorldContoller是 @Controller() export class HelloWorldController { @Get('hello_world') handlerName(

Nestjs服务级缓存

查看Netsjs文档,我可以看到一般的方法是利用CacheInterceptor进行控制器级缓存 我希望实现的是服务/DB级缓存-用例主要用于其他服务所需的静态DB数据,是否有方法扩展提供的缓存模块以从服务中使用?您可以使用此处列出的缓存存储之一: 然后,只需在缓存模块()中注册该存储: 我也在寻找这样做的方法 目前,我通过在服务中注入cacheManager实例并直接使用它,在一些研究的基础上使其工作 import { CACHE_MANAGER, Inject, Injectable } f

Nestjs 从配置中向DTO中注入默认值

目前,我在控制器中使用DTO对象,并将它们与类验证器插件配对,以解析/验证它们。问题是,我想为一些DTO参数指定默认值,但这些值应该来自配置。我需要一些优雅的方法将这些默认值注入DTO,并在各个端点的swagger元信息中自动填充这些默认值(我正在使用nest swagger插件为我自动应用装饰器)。为了达到预期的效果,我看到了两种解决方案,它们都需要一些不必要的折衷 解决方案1: 将配置值注入控制器本身,并在路由处理程序中解析DTO后,将参数和DTO传递给将在DTO上应用它们的方法。但是,为了

Nestjs 使用TypeForm选择有限数量的关系(一个多个)

我想知道使用TypeForm选择固定数量关系的最佳方法,例如,如果我有UsersEntity和PublicationsEntity,用户有100多个出版物,我只想选择其中10个,实现这一点的最佳方法是什么 几年前有人问过类似的问题,但我一直没能做到: 没有任何限制,我的代码如下所示: return await getRepository(UsersEntity) .createQueryBuilder('user') .where('user.userName =

Nestjs 如何以可重用的方式组织相关模块?

我目前有两个模块: 处理登录和注册的Auth User处理所有用户crud操作 Auth要求User模块注册和验证用户。因此,当前,Auth导入User模块: @Module({ imports: [UserModule], components: [JwtStrategy, GithubStrategy, TokenService, LoginService], controllers: [AuthController], }) 然而,如果我想重用这些模块,我就必

nestjs将响应ContentType设置为流值

使用springboot,您可以使用resposne内容类型(@Response(product=APPLICATION\u JSON\u stream\u value)向用户发送一个值流(如服务器发送的事件)那么如何在nestjs中使用它呢?如果我非常了解您的需要,您可以将响应的内容类型设置为application/octet stream。这将允许您将流发送到客户端,就像文件一样。例如,如果我非常了解您的需要,您可以将响应的内容类型设置为application/octet stream。这将

Nestjs @PrimaryColumn上的关系也未涉及@PrimaryGeneratedColumn

我将NestJS与Typeorm配方一起使用,我对这两种方法都是新手。我们正在从Loopback3迁移,在Loopback3中,所有这些都是使用框架的基本特性实现的 对于我们实体之间的许多关系,我们有以下场景: 实体A带有“id”和“代码”字段,这两个字段都是主字段,但只有“id”是自动生成的,“代码”来自其他逻辑,并且始终保证是唯一的 实体B带有“a_代码”字段,该字段是实体a的外键 我们在A级有: @PrimaryGeneratedColumn() id: number;

在NestJS中测试Passport

我正在尝试对一个路由进行e2e测试,该路由具有来自nestjs passport模块的AuthGuard,但我真的不知道如何接近它。当我运行测试时,它会说: [ExceptionHandler]未知的身份验证策略“承载” 我还没有嘲笑它,所以我想这是因为它,但我不知道如何做到这一点 这就是我到目前为止所做的: player.e2e-spec.ts import { Test } from '@nestjs/testing'; import { INestApplication } from '@

Nestjs 如何将AWS X-Ray与Nest.js一起使用?

AWS X-Ray支持Express和Restify中间件,但不支持Nest.js。 Nest.js无法打开和关闭AWSXRay的段,因为它使用typescript装饰进行路由。 如何在Nest.js中使用AWS X-Ray,这是一种非常有趣且难以处理的情况。当然,您可以在标准的Nest中间件(看起来就像Express中间件)中设置OpenSegment调用,但是closeSegment有点困难。我认为(我在这里做了一个很长的尝试,因为我没有真正的方法来测试这一点)您可以创建一个拦截器并将Htt

Nestjs 在nx构建/部署上生成package.json

我有一个monorepo,它使用nx和多个node/nestjs应用程序。有些应用不需要其他应用中使用的所有软件包。因为它是monorepo,所以我需要在部署期间为每个应用安装所有软件包 有没有办法在构建时生成一个package.json,它只包含我正在构建的应用程序所需的包 我尝试使用“generate package json webpack plugin”生成package.json,但它只检测到一半的依赖项 我还尝试构建一个包含所有应用程序的单一js文件,但它似乎不起作用,而且总是需要t

NestJS-Can';无法解析队列?

我跟随开始使用队列。我安装了@nestjs/bull,bull,@types/bull依赖项。这是我的app.module.ts: @模块({ 进口:[ ConfigModule.forRoot({ 加载:[配置], }), BullModule.registerQueue({ 名称:“创建_签入”, redis:{ 主机:“localhost”, 港口:6379, }, }), 事件模块, ], }) 导出类AppModule{} 我在根模块中导入了BullModule。这是我的event.

nestjs vs plain express性能

我刚刚在一个简单的nest控制器上测试了性能,该控制器在get请求中返回文本(无数据库)。 以及与express相同的简单GET控制器(中间件) 我使用WRK工具来测试性能 因此,plain express的速度是nestjs的2倍。 为什么nestjs会产生这么多开销 更新-2020年3月17日 我们现在正在为每一个新的PR运行基准。最新的基准之一可以在这里找到: 这意味着Nest+FastifyAdapter现在几乎比express快了两倍 更新-2018年9月22日 基准测试目录已添加到存

Nestjs 管道接收的嵌套参数

因此,在使用nestjs开发一个简单的REST端点时,我发现了一个小问题 我有一个名为JoiValidationPipe的管道,它使用Joi对象验证请求主体。一切正常,但如果请求同时包含body和param,我会遇到一个问题: @补丁(':id') @UsePipes(新JoiValidationPipe(CreateComicSchema)) async updateComic(@Body()comic:comic,@Param()params){ comic.id=params.id; 返回

在多个模块中使用相同服务实例的NestJs

我有一个NestJs应用程序,它使用两种服务。连接到Db的DbService和执行速度相当慢并使用注入的DbService的SlowService 现在,应用程序将提供api基本路径之外的健康路由,因此我需要一个不同的模块,为健康路由提供控制器 我创建了一个基本模块 import { Module } from '@nestjs/common' import { SlowService } from './slow.service' import { DbService } from './db

如何在Nestjs中解决此依赖性错误

我不知道我的问题在哪里。我得到以下错误: 嵌套无法解析BService(?,AService)的依赖项。请 确保索引[0]处的参数在CModule中可用 上下文 我有3个模块,A,B,C C应该能够使用B提供的服务,B应该调用A提供的服务 A和B各有一个TypeForm导入和一个实体 代码如下: app.modules.ts: @Module({ imports: [ TypeOrmModule.forRoot(), CModule ] }) export class A

NestJS复制资产文件

我正在开发一个EmailModule,它可以读取一个哈巴狗模板 我无法使生成包含*.pug模板文件: 我遵循了基于以下内容的说明: 在nest-cli.json中添加资产属性 "email": { "type": "library", "root": "libs/email", "entryFile": "index", "sourceRoot": "libs/email/src", "compilerOptions": { "tsConfigPath": "lib

Nestjs如何从泛型扩展服务

我已经实现了一个代码,由 从'@nestjs/common'导入{Type} 从'@nestjs/typeorm'导入{InjectRepository} 从“DataLoader”导入*作为DataLoader 从“lodash”导入{keyBy} 从“typeorm”导入{Repository} 导出接口IDataService{ 只读存储库:存储库 加载:(id:string | number)=>Promise loadMany:(id:Array)=>Promise } 类型构造函数

NestJS如何处理2`OnMoudleInit`服务

我创建了一个简单的NestJS项目,其中包括两个OnModuleInit服务 PrismaService用于启动PrismaClient @Injectable() 导出类PrismaService 扩展PrismaClient 实现OnModuleInit、OnModuleDestroy { 异步onModuleInit(){ 等待此消息。$connect(); } 异步onModuleDestroy(){ 等待此消息。$disconnect(); } } DataInitializer用于

Nestjs CsvReader未在异步/等待块中等待-已解决

我将csvReader与nestjs一起使用,并将“on”事件中的函数标记为async,将save to DB标记为wait “打开”事件似乎不会等待保存完成,并在处理文件后打印日志消息 代码如下所示: const CsvReadableStream = require('csv-reader'); const Fs = require('fs'); const path = require('path'); @EntityRepository(UserTitle) export class U

Nestjs 如何在模块之间使用公共服务?

如何为多个模块使用公共服务 我有服务 @Injectable() export class TestService { test(): number { return 123; } } 我在应用程序模块中注册了它 providers: [TestService], exports: [TestService] 我想在产品模块和其他模块中使用它 @Module({ imports: [TestService], controllers: [ProductsCon

nestjs:如何在typeorm中删除带有前缀的redis缓存

我有一个带有create、list和update方法的服务类来修改实体 我在列表方法中设置了redis缓存,缓存键是list\u cache\u 1,list\u cache\u 2,… 我的问题是,如何删除create或update方法中的所有相关缓存,如 this.connection.queryResultCache.remove([`list_cache:*`]); 通过QueryBuilder设置“缓存id”时: const users = await connection

Nestjs 如何在ServeStaticModule中定义路径前缀?

我想根据本文档提供一些静态目录结构,但可以找到以下简单问题的答案: 如何设置路径前缀,如“/some/path/to/files” 如何在运行时设置服务(文件路径是动态的,不能硬编码) 提前谢谢 另外,我看到了一些关于app.useStaticAssets()的答案,但据我所知,这是特定于Express的解决方案,无论如何都不会使用最新版本编译(属性“useStaticAssets”在类型“INestApplication”上不存在) 更新 例如,我有以下目录: /var/lib/app/dat

保存时重新加载html页面时,节点控制台中的Nestjs/Angular Universal输出错误

错误[NetworkError]是什么意思 我使用ng universal拥有一个Nestjs后端和一个角度前端。我正在运行带有“npm run dev:ssr”的fullstack应用程序。每当我在浏览器中刷新前端页面时,服务器终端都会以红色显示“ERROR[NetworkError]”的新行输出。当我发出任何网络请求时,当我向为应用程序提供服务的本地主机端口发出请求时,它不会出错。如果api请求是在重新加载时向服务器OnInit发出的,请在使用ng universal示例时首先检查isPla

Nestjs 是否要向所有队列订阅者发送消息?

我有两个微型服务。第一个微服务是前端服务器,它请求第二个微服务实例之一中的一些工作。NATS传输的最佳解决方案是排队。我可以发送消息,NATS将只发送给其中一个实例。但是,如果我需要向每个队列实例发送消息或事件 前台服务: //module providers: [ ..., { provide: 'CLIENT_PROXY_FACTORY', useFactory: (configService: ConfigService) => {

Nestjs 尝试在Nest.js上运行tensorflowjs时出错

我在Nest.js上运行TFjs时遇到问题。 npm运行启动 嵌套类型脚本-starter@1.0.0启动/主页/vvm/学习/NESTS 筑巢开始 node_modules/typescript/lib/lib.dom.d.ts:16532:11-错误TS2430: 接口“WebGL2RenderingContext”不正确地扩展了接口 “WebGL2RenderingContextBase”。属性“clearBufferfv”的类型为 不相容的 类型“(buffer:number,drawb

NestJS-2个微服务之间的通信

我使用TCP协议构建了一个Http应用程序和两个微服务 这是我的应用程序图 我试图通过@Messagepattern()从帐户服务向好友服务发送消息 为每个服务设置ClientProxy。但它不起作用 我读过官方文档@nestjs/microservices,但我不知道哪一个是合适的 是否有正确的方法将消息从一个微服务发送到另一个微服务?您需要设置消息代理,如RabbitMQ或Kafka,即对于RabbitMQ,输入下面的命令并创建RabbitMQ容器 docker run -it --rm

Nestjs 在提供程序级别上运行事务类型?

我有两个表账户和地址帐户依赖于地址含义要创建帐户,必须先创建地址,然后获取其地址.id 如果地址创建失败或帐户创建失败,我不能依赖我的数据库 因此,我必须运行一个事务 如果我在我的提供者中运行一个事务,该类注入所有必需的服务,以便执行我需要的操作,即帐户创建,在我的情况下,它使用地址服务和帐户服务,我被告知这是一种反模式,因为事务和与数据库相关的一切都必须在存储库中运行 但是怎么做呢?我必须在两个不同的存储库中运行操作addressRepository和accountRepository 当您在

NestJs-ParseUUIDPipe-Validation失败(应为uuid vundefined)

我有一个基本的控制器设置: @Controller('') export class AController { @Get(':id') async getThing(@Param('id', ParseUUIDPipe) id: string): Promise<RegisterRead[] | IntervalRead[]> { return id } } 另请参见:导致此问题的原因是我没有指定版本。它将版本显示为可选字段,但似乎是必需的: new Par

NESTJS中的TypeORM实体-无法在模块外使用导入语句

已使用“nest new”命令启动新项目。工作正常,直到我添加实体文件到它 出现以下错误: 从“typeorm”导入{Entity,Column,PrimaryGeneratedColumn} ^^^^^^ SyntaxError:无法在模块外部使用导入语句 我错过了什么 将实体添加到模块: import { Module } from '@nestjs/common'; import { BooksController } from './books.controller'; import {

Nestjs Cors飞行前请求似乎不起作用

我尝试启用nestjs cors,但没有成功 以下是各种从未奏效的方法。 即使在下面的配置之后,nestjs似乎也不会对选项请求做出任何响应 尝试过的解决方案 在上测试的浏览器 Firefox64.0 chrome版本75.0.3770.90(官方版本)(64位) 平台 Linux Mint 19 目标 使用React使用nestapi 我找到了让它工作的方法,我使用了cors软件包并将其抵押给nest应用程序 const app = await NestFactory.create(Ap

Nestjs 打字稿:什么意思?还有!类内属性

有人能解释一下这个代码吗?我不明白他们为什么加上“?”标记。他们中的一些人有“!”而不是问号。 这是什么意思?这是一个真正的打字问题,而不是打字 定义类似以下内容的属性时: 类型Foo={ 项目1:编号 } 您是说prop1是可选的 当属性前面有时这意味着您告诉Typescript不要警告您没有在构造函数中初始化它(在严格模式下它通常会抱怨) 例如: class-Foo{ //Typescript不会抱怨'a',因为我们在构造函数中设置了它 公众a:数字; //Typescript会抱怨'b'

Nestjs 动态模块依赖注入

我正在尝试做一些奇特的事情:一个DynamicModule,它根据提供程序选择一个控制器/提供程序。提供程序在onModuleInit读取数据库中的配置,因此无法硬编码其值 这类似于这个问题:它从未得到回答 我尝试过几种方法,最接近的方法是: 导出类FancyModule实现DynamicModule{ 公共模块:类型; 公共控制器:类型[]; 公共提供者:提供者[]; 建造师( @注入(StartupConfigService)专用只读启动:StartupConfigService, ) {

在nestjs中使用自动转换验证时获得500

我正在使用NestJS,我正在尝试让参数自动转换工作。 我添加了以下代码: app.useGlobalPipes( new ValidationPipe({ transform: true, }), ); 我有一个控制器,它接收一个数字参数: @Get(':id') getStuff(@Param('id') id: number) { ... } 问题是,当我尝试使用非数字参数(path/to/controller/one而不是path/to/controller/1)

Nestjs 类似于TypeORM QueryBuilder中使用通配符的查询

在我的NestJS项目中,我有以下类型查询: const users = await this.usersRepository.find({ skip, take, order: sortingObject, join: { alias: 'user', leftJoinAndSelect: { country: 'user.country_id', }, }, }); 现在我只想返回名称中带有John的用户。在SQL

在NESTJS中,如何在多个模块之间共享同一个Guard实例?

模块Auth导出保护AuthGuard 从'@nestjs/common'导入{Module}; 从“./auth.guard”导入{AuthGuard}; @模块({ 提供者:[AuthGuard], 出口:[AuthGuard] }) 导出类AuthModule{} 我是AuthGuard 从'@nestjs/common'导入{CanActivate,ExecutionContext,Injectable}; 从“rxjs”导入{Observable}; @可注射() 导出类AuthGu

NestJS-从请求中获取当前用户并验证查询参数

我有一个路径/users来获取用户列表,控制器方法需要获取当前用户,还需要验证输入查询参数。所以我这样写: @useGuard(AuthGuard('jwt'),RolesGuard) @角色(UserRole.GLOBAL、UserRole.ORG) @获取('用户') findAll(@Request()请求,@Query()查询:FindAllUsersDto){ //代码在这里。 } 这很有效。我想知道这是不是有点重复。因为我可以使用req.query来获取查询对象。但是如果我不将@Q

Nestjs 如何在Nest js框架(typescript)中实现clinic.js

我在节点js中实现了Clinic.js。但我不知道如何在Nest js框架中实现clinic.js。我将探讨如何将clinic.js实现为Nest js。但是我没有得到任何答案,你能告诉我吗。我对他们的文档一无所知,但是通过快速浏览他们的文档,看起来你可以只做clinic doctor-nest start-watch,它应该在运行的服务器上启动。使用Thread build将TS文件传输到JS,然后使用clinic docker-node dist/main。它使用nodejs运行端点文件ma

Nestjs TypeForm生成正确的查询,但不返回任何数据

我使用TypeForm查询一个简单的“Like”实体,其定义如下: @Entity() export class Like extends BaseEntity { @ManyToOne(type => Post, post => post.likeList) post: Post; @ManyToOne(type => Contest, contest => contest.likeList) contest: Contest; //

我可以用@nestjs/cofnig获取appModule中数据库的配置吗?

我想使用@nestjs来管理配置文件 现在我已经使用了以下方法来连接mysql和redis // app.module.ts import { Module } from '@nestjs/common' import { SequelizeModule } from '@nestjs/sequelize' import { RedisModule } from 'nestjs-redis' import { ConfigModule } from '@nestjs/config' import

Nestjs Nest.js-Nest cli未获取最新的文件更改

我写了一个非常基本的控制器,比如 @Controller('tasks')) 导出类TasksController{ 构造函数(私有任务服务:任务服务){} @获取(':id') getById(@Param('id')id:string):TaskDto{ log('Get Called>>>',id); const task=this.tasksService.getById(id); const dto=TaskMapper.toDto(任务); 返回dto; } @删除(“:id”) 删

Nestjs 身份验证章节和19身份验证示例存在问题

我下载了19 auth示例并向其中添加了一些console.log调试代码,然后发现了一些问题 JwtAuthGuard中的代码从未执行:“2222222”未在以下代码中打印到控制台: canActivate(context: ExecutionContext) { console.log('22222222222'); // add your custom authentication logic here // for example, call super.logIn(request) t

上一页   1   2   3   4   5    6  ... 下一页 最后一页 共 14 页