如何在NestJS中发布到Kafka客户端?

我曾试图在NestJs中向卡夫卡发表文章 async publish<T extends IEvent>(event: T) { await this.client.connect(); await this.client.send('topic', event); } 异步发布(事件:T){ 等待此消息。client.connect(); 等待这个.client.send('topic',event); } 但尚未找到正确的方法,dispatchEvent

如何混淆NestJS

我正在使用nest.js,并试图混淆dist文件夹中的代码。我尝试了各种解决方案,但似乎都不管用。当我引导服务器(main.js文件)时,它们都会失败 有什么推荐的工具可以正常使用吗?由于Nest如何处理typescript反射和类名,混淆通常会导致更改类的名称,从而使反射系统无法以相同的方式工作。通常,您不必担心混淆服务器端代码,因为它不是公开可见的。由于Nest如何处理typescript反射和类名,混淆通常会导致更改类的名称,从而使反射系统无法以相同的方式工作。通常,您不需要担心混淆服务器

NestJS ConfigService在应用程序启动时的异步TypeForm配置期间返回未定义的值

我正试图通过以下一些文档为我的NestJS应用程序设置配置: 配置: 字体: 我已使用以下值将.env文件添加到项目的根目录中(与package.json的级别相同): DB_URL=localhost DB_USER=root DB_PASSWORD=root DB_NAME=test_db 在我的app.module.ts中,我导入以下模块: import { Module } from '@nestjs/common'; import { TypeOrmModule } from '@n

在NestJS中定义时自动将查询参数解析为对象

我正在编写一个NestJS应用程序。一些端点支持排序,例如http://127.0.0.1:3000/api/v1/members?sort=-id&take=100这意味着按id降序排序 此参数作为@Query参数到达,并传递给我的服务。此服务将其转换为TypeORM使用的对象: { id: 'DESC' } 我不想每次需要排序时都手动调用此转换方法 我尝试了一个拦截器,但这个拦截器无法轻松地将请求参数更改为所需的对象 一个管道工作了,但是我仍然需要为每个端点定义添加@Query(new

Nestjs 为什么我会得到一个;巢罐';t解决依赖关系“;

我正在试图找出为什么会出现以下错误: Nest无法解析UniqueInteractionService(?)的依赖项。 请确保索引[0]处的参数依赖关系为 在SharedModule上下文中可用 我的班级: sharedModule.ts: import {Module, Global} from '@nestjs/common'; import {InteractionsService} from "./elasticsearch/interactionsService"; import {U

在云上运行我的nestjs应用程序,运行时没有错误,但发送请求时没有响应

我试图在云上运行我的nest应用程序,但向它发送请求时不会返回任何结果 npm运行构建 npm运行开始:prod 工作正常,没有错误 但当我通过邮递员发送请求时,它只显示发送 尝试使用curl也同样不会返回任何结果 相同的代码在我的本地主机上运行良好您的代码如何确定要使用的端口?如果您硬编码了端口号,很可能这不是您的云提供商正在使用的端口。谢谢您的回复beast,但我确保我正在收听所有可用的端口,以防我的硬编码端口不可用。事实上,我的服务器上已经运行了一些东西。我想这就是问题的原因。我更改了配置

NestJS处理服务异常

我正在开发一个NestJS应用程序,在这个应用程序中,控制器或任何http请求都不会调用我的服务。相反,cron调度调用一些服务来定期获取数据 在这种情况下,处理错误的最佳方法是什么?我实现了一个“捕获所有”异常过滤器,但当我的服务被“内部”调用(不是由控制器/请求调用)时,错误不会被捕获,并且我有一个未捕获的承诺错误。请参见我的问题: 此装饰器捕获类方法的错误并记录它们。日志部分不是必需的,您可以实现自己的错误处理逻辑 从'@nestjs/common'导入{Inject}; 从“../../

Nestjs 如何在Nest.js的multiple@ManyToMany中获取数据

我在两个实体之间有一个manytomy关系,我不知道如何从联接表“device\u users\u user”中获取数据 您不能使用TypeormAPI直接查询联接表(除非您尝试进行原始查询,但我认为这不是您想要实现的……我不推荐这样做,因为表名可能会更改……) 但是,当您使用@manytomy声明关系时,您可以使用查询生成器加载设备的用户,例如: const devicesWithUsers=wait deviceposition.createQueryBuilder('device')) .

Nestjs 雀巢赢了';升级到7后,无法启动

我今天从6->7升级了我的Nest应用程序。在解决了所有的typescript错误之后,我在启动时出现了奇怪的行为 [Nest] 15484 - 05/01/2020, 3:33:29 PM [NestFactory] Starting Nest application... [Nest] 15484 - 05/01/2020, 3:33:29 PM [InstanceLoader] GraphqlClientModule dependencies initialized +13

如何在NestJS中使用警卫保护代理

使用(哪个使用) 我能够创建一个内部(从外部隐藏)url的代理,并得到预期的响应 然而,由于这是一种中间件方法,所以我无法将任何现有的保护(例如,JWT、角色等)应用于此代理 提到防护在每个中间件之后运行 如果不将所有的保护重新实现为中间件,有没有办法用现有的保护来保护这个代理路由 提前感谢。不可能使用Nest Guard,正如您所说,这是一个中间件。保护代理路由的唯一方法是在安装代理中间件之前为代理路由添加中间件。如果您在main.ts中设置代理中间件,它将如下所示 异步函数引导(){ con

使用typeorm和类验证器的NestJS实体中的DRY原则

有没有办法把这个密码转过来 export class person { @IsString() @Column('text') name: string @IsOptional() @IsString() @Column('text') description?: string } 变成类似这样的东西 export class person { name: string description?: string } 我知道需要decorator,但当每个

Nestjs Nest无法解析searchService的依赖项。请确保参数位于索引处

我正在使用Nestjs框架开发我的弹性服务应用程序。 我在代码中使用“@nestjs/elasticsearch”库,我只是尝试建立数据库连接并在所有其他模块中使用。请在这里找到我的代码示例 我的应用程序模块如下所示 import { AppController } from './app.controller'; import { AppService } from './app.service'; import { ConfigModule } from './config/config.m

Nestjs websocket端口(按配置和cors)

我想知道如何根据配置服务提供商来配置特定端口?例如,我想在我的生产环境中听8500,但在我的登台环境中听8080 以及如何允许cors打开,因为当我连接到不同域中的套接字服务器时,它显示已被cors策略阻止:对飞行前请求的响应未通过访问控制检查:它没有HTTP ok状态,而此代码片段可能解决了问题,确实有助于提高你的文章质量。请记住,您将在将来回答读者的问题,这些人可能不知道您的代码建议的原因。 const options = { cors: { origin: ["exa

如何访问nestjs管道中的标头?

我正在编写一个验证管道,它需要从令牌获取某些信息,因此我必须以某种方式将头传递给验证管道。您似乎无法访问PipeTransform中的请求实例。如果需要访问请求实例,请使用 激活 上下文:ExecutionContext, :布尔值|承诺|可观察{ const request=context.switchToHttp.getRequest; 返回validateRequestrequest; } 您似乎无法访问PipeTransform中的请求实例。如果需要访问请求实例,请使用 激活 上下文:E

NestJs/swagger:定义没有DTO类的ref模式

我有一个应用程序,我根据开放式API规范将API响应模式定义为普通javascript对象。目前,我正在将其传递给@nestjs/swagger中的ApiResponsedecorator,如下所示: 类CATS控制器{ @得到() @蜂群反应({ 现状:200, schema:catSchema//plain从另一个文件导入的js对象 }) getAll(){} } 这很有效。但是,输出openapi规范包含每个使用catSchema的端点的详细模式相反,我希望输出的swagger文件在组件

NestJs:如何将一个存储库导入另一个存储库?

很抱歉,这可能是一个非常业余的问题。来自拉雷维尔,这仍然让我很困惑,我只是不明白需要什么 我有一个user.repository.ts文件和一个location.repository.ts文件。每个都有自己的模块、控制器和服务。我已经成功地为每个实体创建了CRUD操作,但现在我正在努力建立多对多关系 在我的user.repository.ts文件中,我试图保存一个相关的(多对多)存储库: // user.repository.ts user.locations = await this.loc

Nestjs 我可以将实体字段名映射到TypeForm中的别名列名吗?

我正在使用TypeORM从Rails迁移到NestJs。 由于历史原因,Rails中的表名和列名都被屏蔽了——我不想把这个讨厌的东西复制到我们的NestJs/React端 我可以在NestJS(typeorm))中创建名为firstName但映射到数据库中名为first_name的列的实体字段吗 我的桌子 +-------------+--------------+----------------------------+ |系统用户| +-------------+--------------

Nestjs 对特定目录禁用嵌套JS中的实时重新加载

在我的代码中,我在我的项目中生成了一个“downloads”文件夹,由于我使用了nest start--watch命令,我总是会得到“检测到文件更改。正在启动增量编译…”如何才能排除live reload检查下载文件夹?确定我找到了解决方案: "exclude": ["downloads"], "include": ["src"]

Nestjs 通过公共关系获取实体

我有三个实体-公司,用户,访问组。我需要限制用户访问具有AccessGroup的公司 用户和访问组是多对多,公司和访问组是多对多 例如,用户“Murphy”与Accessgroup“Detroit”和“Delta City”有关系,而公司“OCP”与Accessgroup“Detroit”有关系 我如何才能提取与用户具有相同访问组的公司?我找到了解决方案,应该使用TypeORM查询生成器 首先,获取用户与之相关的accessgroups ID。 例如,假设用户Murphy包含在带有agid:[1

Nestjs 什么是一对多的打字形式

我想确切地知道orm类型中的一对多关系是什么 @oneTomany 该命令本身是否为一列,且该列的值保存在另一个表中 它的具体参数是什么?一对多关系用于将表中的一行链接到另一个表中的多行 例如,如果您有一个用户表和文章表,并且希望将文章链接到一个用户,那么它非常有用 使用TypeOrm,您需要在用户实体中定义@OneToMany()装饰器 @OneToMany(()=>ArticleSenty,articleEntity=>articleEntity.user) @JoinColumn()

为什么在NestJS中总是调用带有查询参数的第一个getter?

我有一个控制器,它有两个标记为Get()的函数,都带有@Query参数来接收数据。但只有给定顺序中的第一个被调用,即使我通过它发送的数据应该调用第二个。我的代码怎么了 如前所述,我已经切换了和的位置,但总是调用第一个函数 @Controller('pets') export class PetsController { constructor(private readonly petsService: PetsService) {} @Get() findByCountry(@Q

版本6.10.11中的Nestjs内存泄漏

我将我的nestjs项目从v6.0.0升级到v6.10.11,此后该服务的内存消耗不断增加,直到达到极限,然后服务崩溃。 我降级回6.0.0,内存问题停止 我的docker在AWS上使用节点版本12.4.0运行 有人遇到过这个问题吗 提前谢谢 更新 这个问题在流动的流程中重现: 我有一个Auth服务,它用请求作用域修饰(意味着它是在每个请求中创建的),这个服务有一个记录器服务注入到构造函数中,记录器服务没有作用域。 一旦我移除记录器服务的注入,泄漏就消失了 然而,在6.10.0中,这并没有发生

Nestjs Nest.JS单元测试中的ClassSerializedInterceptor

在测试Nest.JS控制器时是否可以使用ClassSerializedInterceptor 我们的问题是ClassSerializedInterceptor作为应用程序的一部分可以正常工作,但当控制器作为单元测试的一部分实例化时,它不会运行。我尝试提供ClassSerializeInterdeptor作为测试模块的一部分,但没有成功 示例代码: 试验 作为请求流的一部分测试拦截器只能在e2e和部分集成测试中完成。您需要将一个supertest实例设置为并发送请求,以确保ClassSeriali

Nestjs 是否可以在LeftJoin中使用子查询,在TypeForm中使用Select

所以我有一个关于nestjs和使用TypeORM的项目。我的情况是,我有一个用户,它可能与UserSubscrption有关系。默认查找查询按原样向用户添加了所有订阅。所以现在我想找到一个特定的订阅,例如last added。因此,我构建了这个查询: const query = this.createQueryBuilder("user") .leftJoinAndSelect("user.settings", "settings") .leftJoinAndSelect

如何在Nestjs中实现IP访问保护

是否有任何方法可以实现一个自定义保护,允许访问与存储的ip匹配的用户。为此,每个用户在数据库中都有一个关联的ip。通过每个canActivate函数使用的ExecutionContext访问请求。要获取请求,您需要将上下文更改为http,然后获取请求。可以这样做:context.switchToHttp().getRequest()。因此,ip通常是顶级属性。请记住,IP不是静态的,可能会发生更改是的,是的。主要问题是我无法从警卫处访问服务,无法将模块转换为全局。我找到了另一种方法,通过对之前运

Nestjs:使用TypeOrm从CockroachDB加载jsonb将日期转换为字符串

我在CockroachDB中存储一个实体,其中一列是存储在JSONB列中的DTO。DTO中的一个属性是日期,但当我从数据库加载它时,它是一个字符串 这里是我的实体: @Entity('Entity') export class Entity { @Column('jsonb', { nullable: true }) @IsOptional() @Type(() => StateDto) @ValidateNested() state: S

Nestjs 删除一对多关系

我不熟悉typeorm和nestjs,但是我想知道是否有可能删除一对多不动产,例如,当我建立关系时,它看起来是这样的: id | title | relationId 1 test 2 但是,我希望将关系恢复到原始状态,如: id | title | relationId 1 test [null] 然后用一个新的一对多关系更新,如: id | title | relationId 1 test 4 老实说,我不确定这是否可能您可以在sa

NestJS中的模型与DTO

我对NestJS完全陌生。我已经看到,在NestJS中,创建了一个模型来指定数据的细节,例如,当创建简单的任务管理器时,当我们想要指定单个任务的外观时,我们在模型中指定它(下面的示例): 然而,我后来遇到了DTO,在这里再次描述了数据的形状。我的理解是,在传输数据时使用DTO,即它描述您将发布或获取的数据类型 我的问题是,当我已经在使用DTO来描述数据的形状时,为什么还要使用模型呢 此外,我还了解到,使用DTO,我们可以获得单一的真实来源,如果我们意识到数据结构需要更改,我们不必在控制器和服务文

NestJS/Mongoose:序列化不排除普通输出中的属性

我开始玩nestjs,从我以前的express/mongoose项目迁移过来,紧接着nestjs文档中的mongodb/serializations章节,我立即撞上了围栏。我已经准备好了下面的模式 /////// schema import { Prop, Schema, SchemaFactory } from '@nestjs/mongoose'; import * as mongoose from 'mongoose'; import { Exclude, Expose } from 'c

新的NestJS项目没有更漂亮的

当我通过CLI创建一个新的NestJS项目时,它会自动为项目添加更漂亮的东西。我不喜欢用更漂亮的。如何创建新的NestJS项目而不使用更漂亮的工具?我的机器上甚至没有安装prettier。prettier是作为应用程序的依赖项安装的。没有不安装它的选项,至少通过Nest CLI。尽管如此,你还是有一些选择 创建您自己的原理图或GitHub模板,允许您绕过Nest的标准安装(您每次都必须克隆它,但这至少是一个选项) 使用--skip install标志,并在删除prettier依赖项和prett

是否有关于如何在NestJS中描述和组织模块的最佳实践?

假设有两个实体:Cat和Photo。每张照片可以有一只猫,但每张猫有很多照片。用户应能够创建、阅读、更新和删除猫和猫的照片。因此,我为以下端点提供了GET、POST、PUT和DELETE方法 /cat /cat/:id /cat/:id/photo /cat/:id/photo/:id 我对如何组织代码感到困惑。我看到了不同的模块化选项 选项1:将所有东西都扔到cat模块内 └── cat ├── cat.controller.ts ├── cat.entity.ts

nestjs winston日志文件是用颜色编码编写的

我面临着与wherelogger.info('你好,你好吗?')相同的问题是结果�[32minfo�[39m:�你好,你好吗?�[39m 我不知道colorize在哪里,所以我可以删除它,这是我的代码: new winston.transports.File({ format: winston.format.combine( winston.format.colorize({ // I added this but it's still not helping

Nestjs 是否可以在没有侦听端口的情况下运行应用程序?

是否可以在没有侦听端口的情况下运行应用程序? 我只想运行计划任务是的,您可以,Nestjs提供独立应用程序,使用它,您可以在没有任何网络侦听器的情况下装载Nest应用程序。要实现它,您必须通过以下方式编辑main.js函数: async function bootstrap() { const app = await NestFactory.createApplicationContext(AppModule); // application logic... } bootstr

NestJS试图通过url打开文件夹中项目内的图像

我用NestJS制作了这个项目,我用它来构建端点。最近我创建了一个保存图像的端点,这些图像保存在一个与SRC文件夹相同级别的文件夹(称为upload)中 我需要打开这些图像,如下所示:http://localhost:3000/upload/2363729-c9642363729.jpg 但是,尽管我尽了最大努力,我还是无法得到它 这是我的main.ts代码(现在不工作): 这就是我的项目的样子: 我怎样才能得到url呢?您的代码中有一个输入错误,更新而不是上传。将其替换为以下内容: app.

Nestjs Nest CLI-main.hmr.ts文件是什么?

使用创建新应用程序时 nest new myApp 它创建一个main.hmr.ts文件。此文件与main.ts不同,因为引导函数包含以下代码: if (module.hot) { module.hot.accept(); module.hot.dispose(() => app.close()); } 模块的声明为: 我想知道这段代码的目的是什么…好的-它被网页热模块替换使用 declare const module: any;

Nestjs typeform中的多对多连接

我们目前正在针对数据库实现NestJS。我们决定使用TypeORM为我们提供一个强大的ORM,用于大多数基本到中间查询。然而,在我们的实体中建立一种特殊关系时,我遇到了一些问题 我们的表结构来自无法修改的现有系统。详情如下: 员工表 +-----------+-----------+---------------+ | HRCO (PK) | HRRef(PK) | udDisplayName | +-----------+-----------+---------------+ |

Nestjs 包含TypeForm中方法的实体的种子数据库

我正在使用typeorm和nestjs 我有一个实体,看起来像这样,但有额外的属性: export class User extends BaseEntity { @ApiModelProperty({ uniqueItems: true, example: 'myuser', description: 'User login' }) @Column({ unique: true }) login: string; @ApiModelProperty({ example:

如何使用Nestjs和TypeOrm定义多对多列?

我是nestjs/typeorm的新手,请原谅我 我建立了一种多对多的关系;“我的表”是使用正确的列自动创建的 我有一个可以有很多用户的位置,一个用户可以有很多位置 我的路线如下所示: http://localhost:3000/locations/:location-id/用户 我的location.entity.ts如下所示: @ManyToMany(type=>User,User=>User.locations,{eager:true}) @JoinTable() 用户:用户[]; 我

NestJs:为什么我们不';是否不使用DTO替换所有接口?

我们能否使DTOs成为验证的真实来源,并在控制器和服务中使用它? 如果我已经有DTO,为什么我需要接口?如果你不想使用接口,就不需要接口。对于作为基本模型的DTO,我也不使用接口。也就是说,它们非常强大,所以我绝对不会阻止您使用它们,举个例子: interface ILogger { log(message: string) : Promise<void>; } class ConsoleLogger implements ILogger { log(message

NestJS服务JSON并添加一个;“违约”;部分重复JSON

我在为一段JSON服务的NestJS中的端点上有一个奇怪的行为。 带有JSON对象的JS正在导出 module.exports=Object.freeze({ 翻译:{ TestMessage:'BienvenueáReact et React-i18next' } }); 客户端上的结果是: { "translation": { "TestMessage": "Bienvenue à React et react-i1

Nestjs-控制器中定义的路由相互覆盖

我有一个控制器 //imports etc ... @Get('me') async get(@Req res): Promise<UserVm> { // extract auth user from request object // return auth user } @Get(':id') // uuid async get(@Param('id') id: string): Promise<UserSummaryVm> { // r

在生产模式下启动nestjs

我使用的是我购买的akveo后端包,虽然在开发模式下,从生产开始,一切似乎都运行良好,但我对nestjs本身并不熟悉。 有人知道这是怎么回事吗 node_modules/@nestjs/core/adapters/http-adapter.d.ts:5:31 - error TS2420: Class 'AbstractHttpAdapter<TServer, TRequest, TResponse>' incorrectly implements interface 'HttpSe

用于多个装饰器的Nestjs applyDecorators

我想使用从@nestjs/common ... applyDecorators( @Field(), @MinLength(2) ) ... 但我有打字稿的线头错误。如何创建一个包含多个decorator的自定义decorator 您可以使用applyDecorators方法定义自定义装饰器方法 applyDecorators方法接受PropertyDecorator作为参数。因此,请确保将它们转换为PropertyCorator export const NameField =

Nestjs 如何在使用prisma维护实体之间关系的同时插入数据?

在提出问题之前,我很抱歉语法可能很奇怪,我的语言不是英语 最近,我正在通过Nestjs&Prisma进行一个新项目。 在维护用户实体和Post实体之间的关系时,如何将数据放入 下面的代码是定义的实体方案和我尝试过的代码 model Post { content String id Int @default(autoincrement()) @id title String userId Int? user User? @relation(fiel

服务器未获取客户端发出的消息-NestJS MQTT

我是Nest的新手,我正在尝试集成MQTT协议。一切正常,只是服务器没有从服务器上实例化的客户端收到任何消息 main.ts async function bootstrap() { // Create regular nest application. const app = await NestFactory.create(AppModule); // Then combine it with your microservice const mqtt = app.conne

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