问题标签 [nestjs-gateways]
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.
socket.io - 如何从控制器或其他组件/服务访问 websocket?
我有一个 REST API,我想通过 websocket 向客户端发送事件。如何在控制器或其他组件中注入 websocket 实例?
node.js - Nestjs websocket网关,如何从握手中解析签名cookie以进行保护授权?
我的后卫包含以下代码:
调用 cookieParse.signedCookie(); 后生成的 sessionId 仍然是签名的;
client.request.cookies 和 signedCookies 都是未定义的。
会话 ID 在那里,浏览器正在发送 cookie,但我无法在网关中解析它。
node.js - 无法在 Nestjs 的 WebSocket 侦听器中调用服务
我已经使用以下方法在 Nestjs 中实现了 WebSockets,其中一个要求是,一旦我收到来自 websocket 服务器的任何消息,我就需要更新数据库。为了做到这一点,我已经完成了下面的代码,但得到了这样的错误:
但是,如果我在任何其他控制器方法中调用相同的方法,它就可以正常工作(检查 /test1)。只有当我从 websocket 侦听器调用它时,我才会收到此错误。即使我从同一个控制器调用简单方法来打印一些日志,我也会收到相同的错误TypeError: this.processData is not a function。诡异的!
有人可以告诉我我做错了什么吗?
控制器代码:
存储库代码:
javascript - NestJs 将 GRPC 异常转换为 HTTP 异常
我有一个通过 GRPC 连接到网关的 HTTP 服务器。网关还连接到其他 . GRPC 微服务。流程如下所示:
客户端 -> HttpServer -> GRPC 服务器(网关) -> GRPC 微服务服务器 X
我目前处理错误的方式是这样的(如果有更好的做法,请告诉我)为了简洁起见,我只会显示 nessaccery 代码
GRPC 微服务服务器 X
这个简单的向 GRPC 客户端抛出错误(工作正常)
GRPC 服务器
Grpc 服务器捕获错误,然后捕获购买全局异常处理程序(这工作正常)
这会将错误返回给 Http 服务器(grpc 客户端,工作正常)
现在,当它到达 Http 服务器时,我希望我可以设置另一个 RPC 异常处理程序并将错误转换为 HTTP 异常。但我不确定是否有可能,我只使用了几天的 Nest,还没有完全理解它。
这是我希望做的一个例子(代码不起作用,只是我想要的例子)。id 更喜欢全局捕获异常而不是到处都有 try/catch 块
graphql - Nestjs - @nestjs/graphql GraphQLGatewayModule 总是返回错误请求
我正在尝试使用来自@nestjs/graphql 的 GraphQLGatewayModule 模块。
为了测试,我正在免费使用 GraphQL API:https ://anilist.co/graphiql
但我总是得到 HTTP 400 状态。
我的代码:
我总是得到 HTTP 400 状态。但是这个api没问题。我收到这条消息:
我是否以错误的方式使用 GraphQLGatewayModule?
谢谢!
websocket - NestJS Websocket Gateway:使用名称空间和 WS 适配器
我正在努力在 NestJS 7 中实现 Websocket 网关,如文档中所示。我使用 WS 适配器。
我遇到的问题是网关接受连接而不管 url。例如,如果我像这样定义我的网关:
handleConnection
然后无论客户端请求的路径如何,都会触发此网关:
不幸的是,这意味着所有客户端都连接到每个网关。命名空间选项是否仅适用于 socket.io 适配器?
node.js - 下面的 Node 片段的 Nest.js 等效程序
有人可以帮助并告诉我如何编写以下代码片段,该代码片段被编写为节点应用程序,以编写为仅具有 WebSockets 和网关类的嵌套应用程序?
编辑:在 main.ts 我写了这个: app.useWebSocketAdapter(new WsAdapter(app));
这就是我的网关类的样子:
node.js - 在nestjs中的另一个拦截器中使用拦截器
我在里面创建一个拦截器,我想使用 FileInterceptor 但在 FileInterceptor 之后我收到错误声明
apollo - 微服务之间的关系应该如何架构
我正在使用 NestJS + Prisma + Apollo Federation。
在微服务 A 上定义用户,在微服务 B 上定义帖子。关系是 1 - N,一个用户可以有 N 个帖子。
在 Prisma 中,Post 的数据模型是用用户的字符串定义的,因为 userId 是一个 uuid。
在生成的模式(使用https://graphql-code-generator.com)中,Post 有一个 User 类型的属性,而这种 User 类型扩展了 id 和一个帖子数组:
在 apollo federation 中,所有工作都按预期工作,除非在尝试链接两个微服务之间进行查询。
在操场上,如果您尝试使用其用户查询帖子而不设置子字段,它会破坏架构并说您必须设置用户的子字段,如果您设置子字段,graphql 会响应一条消息,您不能使用子字段,因为它的类型是字符串。
我可以使这项工作正常工作的唯一方法是在 Prisma 中设置字符串类型的 userId 字段,并在模式中设置另一个字段,称为用户类型的用户。但是所有示例都没有显示与 db 一起使用的字段和与 schema 一起使用的字段。
我的问题是这是推荐的还是我错过了什么。
javascript - 如何在发布请求中自定义错误消息?
我正在使用嵌套 js 来制作Restfull Api
. 我也class-validator ,and class-transform
用来验证我的请求 ot DTO
。目前它正在显示此错误
我想自定义此响应,例如
有可能nestjs
吗?
这是我的代码 https://codesandbox.io/s/nest-9ziyr?file=/src/dto/user.dto.ts
我是这样使用的
在控制器中
这是我的代码 https://codesandbox.io/s/nest-9ziyr?file=/src/dto/user.dto.ts
使用类似 POST的 API