nestjs 相关问题

NestJS是一个渐进式Node.JS框架,用于构建高效,可扩展的Web应用程序。它基于常见的Angular概念,为服务器端代码提供了高效的依赖注入器和强大的开发体验。

共享链接在移动应用程序中如何工作?

在移动应用程序中,我想从应用程序内创建共享网址(例如,共享用户个人资料),当不同的客户端单击此链接时,我想将它们重定向到...

回答 1 投票 0

类装饰器Nestjs修改类中的每个方法

我想创建一个装饰器,它可以获取类的所有方法并用某些功能包装它们,对于这个例子,只需像这样记录: 导出函数 CustDec 我想创建一个装饰器,它可以获取类的所有方法并用某些功能包装它们,对于这个例子,只需像这样记录: export function CustDec<T extends new (...args: any[]) => any>(Target: T) { return class extends Target { constructor(...args: any[]) { super(...args); console.log('@--------------------@'); (Target as any).prototype.alphaMethod = async (args: any[]) => { console.log('@-before-@'); await (Target as any).alphaMethod(); console.log('@-after-@'); }; } }; } 问题是当我将此装饰器应用到我的班级时: import { Controller, Post } from '@nestjs/common'; import { ApiTags } from '@nestjs/swagger'; import { Firewall } from 'src/auth/decorators/firewall.decorator'; import { CustDec } from './feedback.decorator'; @CustDec @ApiTags('feedback') @Controller('feedback') export class FeedbackController { constructor() { setTimeout(async () => { await this.alphaMethod(); // <--- here }, 3000); } @Firewall() @Post('') async alphaMethod() { // <-- and here return 'some promised result'; } } 当我尝试在控制器上调用 /feedback 端点时,我收到错误,就好像 Firewall 和 Post 装饰器在我的 CustDec 更改 alphaMethod 后停止工作一样。即使我从 FeedbackController 构造方法内部调用 alphaMethod,我也会收到另一个错误: @-before-@ This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason: TypeError: Target.alphaMethod is not a function at FeedbackController.Target.alphaMethod (/home/zagrava/workspace/test-nest/backend/src/feedback/feedback.decorator.ts:8:31) at Timeout._onTimeout (/home/zagrava/workspace/test-nest/backend/src/feedback/feedback.controller.ts:12:18) at listOnTimeout (node:internal/timers:564:17) at processTimers (node:internal/timers:507:7) 如何让我的 CustDec 使用日志记录正确包装类的所有方法? 类装饰器可以像下面这样实现: function intercept<T extends { new(...args: any[]): {} }>(target: T) { const methods = getMethods(target.prototype); for (const method of methods) { const currentMethod = target.prototype[method] target.prototype[method] = async (...args: any[]) => { console.log("intercepted", new Date()); const result = currentMethod(args) if (result instanceof Promise) { await result } console.log("executed", new Date()); return result; } } } 这个想法是获取类的所有函数(构造函数本身除外)并将它们包装在自定义函数中。 获取如下类函数的辅助方法对于这种情况很有用: const getMethods = (obj: any) => Object.getOwnPropertyNames(obj).filter(item => typeof obj[item] === 'function' && item !== "constructor") 游乐场 多个装饰器正在运行 问题很简单,POST和Firewall等装饰器使用反射包创建元数据,因此只需将原始方法的元数据复制粘贴到目标方法即可。 function copyMetadata( originalMethod: any, targetMethod: any, ) { const metadataKeys = Reflect.getOwnMetadataKeys(originalMethod); for (const key of metadataKeys) { const metadata = Reflect.getMetadata(key, originalMethod); Reflect.defineMetadata(key, metadata, targetMethod); } }

回答 2 投票 0

当类型为记录时,类验证器不起作用<k,v> - NestJS

我们有一个 DTO 属性,其类型为 Record,Animal 是另一个带有 @IsDefined()、@IsNotEmpty() 等类验证器的 DTO。然而这些验证并没有发挥作用

回答 2 投票 0

接下来,如何从我在 NestJS 应用程序中设置的 cookie 访问 JWT 令牌?

我现在被这个问题困扰了一段时间: 我正在尝试在 Nest 后端中设置一个仅 http 的 cookie,以存储一个 jwt 令牌,稍后我可以在 Next 客户端中访问该令牌。 应该设置它的部分是...

回答 1 投票 0

如何在nestJS中重新定义自定义护照策略?圆形结构错误

我是nestjs的新手。我已经实现了 Local 和 JWT 策略,这些策略已经运行良好,现在我需要另一种策略,通过我称为 tokenRegister 的字符串对用户进行身份验证。 我...

回答 1 投票 0

如何使用mercurius在nestjs上实现graphql-query-complexity

我正在尝试在 graphql API 上实现查询的最大复杂性。不过,NestJs 没有关于如何使用 Mercurius 执行此操作的文档(仅 apollo)。 https://docs.nestjs.com/graphql/

回答 1 投票 0

TypeORM:自定义多对多关系不会一直填充

我通过联合表 BusinessSalesperson 在 Business 和 Salesperson 之间建立了自定义的多对多关系。这是我当前的代码 商业 @OneToMany(() => 业务销售人员,...

回答 1 投票 0

在不更改 dto 代码的情况下禁用值验证 |类验证器嵌套 js

我有一个 dto 类验证器,示例如下。我可以在不更改 dto 本身代码的情况下从验证中删除 userId 吗?例如,在控制器中使用 dto 时执行此操作 前...

回答 1 投票 0

在NestJS中手动注册一个typeorm EventSubscriber,而不需要在配置文件中指定

在 NestJS 中,我扩展了 EntitySubscriberInterface 类来创建通用的 EventSubscriber。 我的目标是每次插入一些东西时捕获所有 typeorm 存储库事件“beforeInsert”...

回答 2 投票 0

在 VS Code 中使用 nodemon 调试 NestJS 应用程序

有没有办法用nodemon调试nestJS项目。 我在 launch.json 中尝试了这段代码 { “类型”:“节点”, “请求”:“启动”, "name": "NestJs 手表", “运行时执行表...

回答 4 投票 0

如何在ClientsModule中使用环境变量?

我尝试在 ClientsModule 中使用环境变量,如下所示: 从'@nestjs/common'导入{模块}; 从'@nestjs/microservices'导入{ClientsModule,Transport}; @模块({ 导入...

回答 2 投票 0

如何选择子实体所有记录名称/标题到父实体列表中作为带有逗号分隔字符串的单个属性

内容:[{ title: '测试内容IV', 类型:'链接', 类别:'类别', 关键字:'tset,测试', 更新时间:2024-05-13T12:21:28.018Z, is_disabled: 真 }, { title: '测试内容IV', 类型:'链接',

回答 0 投票 0

Nest js 在中间件中获取响应体

我正在开发日志记录中间件,想要记录 500 个响应中的响应正文。在中间件中,我根据请求设置“完成”事件的回调,该回调在响应被设置后发出...

回答 1 投票 0

CORS Nestjs 和 Angular :

我有一个带有 Angular 和 NestJS 的项目的问题: 从源“http://localhost:4200”访问位于“http://localhost:3000/card”的 XMLHttpRequest 已被 CORS 策略阻止:响应

回答 1 投票 0

Nestjs - Signoz 自托管(无日志)

我尝试使用signoz自托管(docker)在我的nestjs应用程序中记录跟踪,我的代码没有错误,但我仍然没有在signoz ui中看到任何日志和跟踪 // 跟踪器.ts '使用严格'; 小鬼...

回答 1 投票 0

Nest JS v10 断点在 VSCode 上不起作用

将 Nest 应用程序升级到 v10 以使用 SWC 构建应用程序后,VSCode launch.json 无法按预期工作 VSCode 断点应该可以工作。 当前的launch.json: { “版本”...

回答 2 投票 0

Nest-Commander“当连接处于关闭状态时,无法添加新命令”

在我的数据库中,我有一个表“应用程序”,我创建了一个新表“应用程序状态”,它使用 TypeORM 与应用程序具有一对一关系。 为了播种所有应用程序的状态,我...

回答 1 投票 0

NestJS:在使用 GraphQL 和 MongoDB 定义 InputType 和 ObjectType 字段时,我们可以使用自定义类型和类吗

我对这些堆栈相当陌生,因为我正在尝试使用它们来构建应用程序(GraphQL、NestJS 以及使用 MongoDB 实现)。 我有一个模型文件,在其中导出要使用的自定义类和类型

回答 2 投票 0

NestJS 自定义验证器不会在构造函数中注入服务 - 无法读取未定义的属性

我正在尝试为 NestJS 中的输入类创建自定义验证器。这就是我所做的: // is-building-id-provided.validator.ts 从“@nestjs/common”导入{可注入}; 导入 {

回答 2 投票 0

如何删除Nextjs和clerk中的额外属性错误

我在 Next.js 应用程序中与职员一起收到此警告 我删除了 chrome 中的所有扩展,但此警告仍然没有消失。不,这是警告不在托管应用程序中...

回答 1 投票 0

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