问题标签 [nestjs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1373 浏览

nestjs - HTTP 和 RPC 之间的共享异常

你好,

我们有一个可以通过 HTTP 和 gRPC 访问的 NestJS 应用程序(使用自定义 RPC 策略)。

虽然它们不共享相同的路线,但它们确实共享一些代码。例如,从数据库中查找资源的服务。我们最初遵循文档并使用异常过滤器来管理 HTTP 响应状态代码。这意味着当找不到资源时,服务会抛出 NotFoundException 的实例。

然而,现在我们正在尝试与 RPC 异常处理程序集成,我们发现任何不是 RpcException 实例的异常类型都将被 RPC 微服务视为内部服务器错误,包括 HttpExceptions。

查看文档和源代码后,我找不到在这两个微服务之间正确共享异常的方法,但我可能完全错了。

有没有办法在 HTTP 和 RPC 服务之间共享代码,同时仍然通过这两种协议准确报告异常?

0 投票
4 回答
12833 浏览

nestjs - 对 Nestjs 路由进行版本控制?

我刚刚开始使用Nestjs,我想知道如何使用路由前缀或通过 Express Router 实例对我的 API 进行版本控制?

理想情况下,我想通过以下方式访问端点:

等等,所以我可以优雅地降级端点。我没有看到可以在哪里添加版本前缀。我知道可以在应用程序实例上设置全局前缀,但这不适用于一组特定的端点。

0 投票
0 回答
2576 浏览

typeorm - TypeORM 连接提供者作为 Connection 类

是否可以像这里一样使用连接类provide

使导入工作如下:

在那种情况下nestjs找不到依赖关系。我猜问题出在typeorm,它被编译为普通的 es5 函数。但也许有解决方案?

复制的存储库

更新:

我找到了可接受的解决方案nestjs typeorm module,但不明白为什么我的Connection课程不起作用,但它适用于字符串。希望@kamil-myśliwiec 有助于理解。

0 投票
1 回答
9098 浏览

typescript - 为什么在尝试建立关系时未定义 joinColumns?

尝试TypeError: Cannot read property 'joinColumns' of undefined at <...>/src/persistence/SubjectOperationExecutor.ts:282:47创建具有关系的新实体对象时出现错误。为什么会这样?

在一个实体中,我有:

第二个:

我像这样保存(在哪里owner: Userusers: User[]

即使我注释掉account.owner = owneraccount.users = users || []. 它保存帐户,但不建立关系。


附加信息:如果我在保存之前console.logaccount正确的 - 它确实将所有者和用户作为User类的实例。


owner并且users是已经在数据库中的用户实体对象。

0 投票
4 回答
8289 浏览

nestjs - 架构服务器端 i18n 的最佳方式

我正在使用 nestjs 创建我的 REST API,并且我要求支持 i18n 来处理 API 返回的所有消息(异常消息、提示等),我想知道更好的方法是什么使用nestjs 框架。

使用普通快递,我可以从请求标头中获取用户语言,并且可以将其翻译为 Nestjs 中间件,以便将语言代码放入位于请求执行上下文中的某个软件中,然后从我的 i18n 服务中使用(我这样做不想添加语言参数everyware我需要用户语言)你怎么看?它是解决我的要求的合适架构吗?哪个是为当前请求放置语言的最佳位置?

0 投票
1 回答
1546 浏览

node.js - NestJS/ExpressJs 参数太多

我正在尝试将文件发送到 NestJS 控制器,但不断收到too many parameters异常。我已经安装bodyParser并更新了请求大小限制以解决request too large异常。

main.ts:

控制器:

邮递员请求(未显示,图像的二进制附件):

0 投票
1 回答
970 浏览

passport.js - NestJs/Passport 身份验证不适用于异步传递的路由

当我从承诺中的数据库中传递选定的路线时,授权不起作用。这意味着对通过路由的请求总是被授权的。

当我在对象数组中传递路由时效果很好

0 投票
2 回答
6611 浏览

node.js - Nest.js 为模型创建静态和实例函数的方法是什么?

这样的事情是否存在或者我是否遵循标准的猫鼬程序?

我阅读了文档,我昨天花了一整天的时间,但我只能找到将功能放置在服务组件中的相关文档。这不是有效的,好像我想在服务组件之外使用静态模型函数(例如,自定义装饰器),因为 DI 是私有的,所以它不会到达它。

我会在 Github 上为文档请求创建一个问题,但我担心我可能忽略了一些东西。

编辑2:请不要更改帖子的标题。“巢”不是“最佳”的拼写错误。它指的是一个名为 Nest.js 的 Node.js 框架。(请参阅帖子标签和参考文档链接)

编辑:在文档的MongoDB 部分,有这段代码:

但具体来说,这部分是从扩展 Mongoose接口的接口Model<Cat>导入的。如果这个接口是一个具有功能的类而不是一个类(即使在编译之后)不是更好吗?CatDocumentCat

0 投票
1 回答
153 浏览

graphql - 官方文档中缺少 nestjs graphql 的文档

nestjs graphql失踪的文件

无法访问nestjs站点上的文档页面https://docs.nestjs.com/下的链接未激活,之前可以在 https://docs.nestjs.com/graphql/quick-start 访问它是否已删除故意或我怎么能得到它?nestjs graphqlRECIPES捕获

0 投票
1 回答
6327 浏览

node.js - Nest JS - 无法向中间人注入服务

我创建了一个身份验证中间件来检查每个请求,中间件正在使用服务器(仅当在 req.connection 中找不到数据时)。我正在尝试将服务注入到我的中间件中,但我不断收到相同的错误“Nest 无法解析 AuthenticationMiddleware (?) 的依赖项。请验证 [0] 参数在当前上下文中是否可用。”

身份验证模块:

身份验证中间件:

服务器模块:

应用模块: