我正在开发一个 NestJS 整体应用程序,在不久的将来,我们会将其分解为微服务,但现在一切都在同一个项目上。
我有一些用于数据库增删改查操作的 REST API,现在,我正在开发一项新功能,该功能将通过 websocket 连接从前端接收有效负载,然后在特定服务器上调用一些方法。
现在,我是套接字的新手,也是 Nest 的初学者,所以这可能是一个明显而愚蠢的问题
我正在关注 Nest 的文档:https://docs.nestjs.com/websockets/gateways,但我不确定如何将其中的一些应用到现实生活中的应用程序中。我socket.gateway.ts有一个handleConnection方法sendMessage,但我需要一些关于监听新事件的建议。现在,我接收消息的唯一方法是使用类@SubscribeMessage中的方法.gateway.ts。但这样一来,我的网关必须注入需要接收套接字连接有效负载的每个服务,因此我需要在网关内为每个“操作”使用一个新方法,就像我在控制器上使用 REST 端点一样。
所以,这是我的问题:
另外:我并没有坚持使用 Nest socket.io lib,我可以使用另一个库,但我确实更喜欢继续使用 Nest 的本机库,因为这不仅仅是我的决定,所以......
编辑:我意识到我关于“不同服务”的问题实际上可能更好地解释为“不同域”。
我刚刚制作了一个全局异常过滤器,看起来与 Nest 文档上的完全一样: https: //docs.nestjs.com/exception-filters
它捕获了除了 Nest 生命周期之外的所有内容,所以我想知道,如何为该过滤器未捕获的异常创建一个全局过滤器,例如 Nest 的微服务(kafka 传输)事件?
所以,我有这个 NestJS 项目,出于学习目的,我想使用Nest-commander创建一个可以在终端上执行的命令(这样我可以从其他服务调用函数),也出于学习目的,每当我调用它时命令,它应该调用服务文件上的函数,从数据库中获取用户。
它看起来像这样:
> run myCommand -username UsernameString
Run Code Online (Sandbox Code Playgroud)
每当从终端调用该命令时,我都会调用getUser()fromAnotherService来查找具有特定 UsernameString 的用户。我阅读了文档,但无法理解其中的内容,所以......