问题标签 [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.

0 投票
3 回答
7554 浏览

socket.io - 如何从控制器或其他组件/服务访问 websocket?

我有一个 REST API,我想通过 websocket 向客户端发送事件。如何在控制器或其他组件中注入 websocket 实例?

0 投票
1 回答
1628 浏览

node.js - Nestjs websocket网关,如何从握手中解析签名cookie以进行保护授权?

我的后卫包含以下代码:

调用 cookieParse.signedCookie(); 后生成的 sessionId 仍然是签名的;

client.request.cookies 和 signedCookies 都是未定义的。

会话 ID 在那里,浏览器正在发送 cookie,但我无法在网关中解析它。

0 投票
1 回答
1437 浏览

node.js - 无法在 Nestjs 的 WebSocket 侦听器中调用服务

我已经使用以下方法在 Nestjs 中实现了 WebSockets,其中一个要求是,一旦我收到来自 websocket 服务器的任何消息,我就需要更新数据库。为了做到这一点,我已经完成了下面的代码,但得到了这样的错误:

但是,如果我在任何其他控制器方法中调用相同的方法,它就可以正常工作(检查 /test1)。只有当我从 websocket 侦听器调用它时,我才会收到此错误。即使我从同一个控制器调用简单方法来打印一些日志,我也会收到相同的错误TypeError: this.processData is not a function。诡异的!

有人可以告诉我我做错了什么吗?

控制器代码:

存储库代码:

0 投票
2 回答
3526 浏览

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 块

0 投票
1 回答
883 浏览

graphql - Nestjs - @nestjs/graphql GraphQLGatewayModule 总是返回错误请求

我正在尝试使用来自@nestjs/graphql 的 GraphQLGatewayModule 模块。

为了测试,我正在免费使用 GraphQL API:https ://anilist.co/graphiql

但我总是得到 HTTP 400 状态。

我的代码:

我总是得到 HTTP 400 状态。但是这个api没问题。我收到这条消息:

我是否以错误的方式使用 GraphQLGatewayModule?

谢谢!

0 投票
0 回答
2293 浏览

websocket - NestJS Websocket Gateway:使用名称空间和 WS 适配器

我正在努力在 NestJS 7 中实现 Websocket 网关,如文档中所示。我使用 WS 适配器。

我遇到的问题是网关接受连接而不管 url。例如,如果我像这样定义我的网关:

handleConnection然后无论客户端请求的路径如何,都会触发此网关:

不幸的是,这意味着所有客户端都连接到每个网关。命名空间选项是否仅适用于 socket.io 适配器?

0 投票
0 回答
98 浏览

node.js - 下面的 Node 片段的 Nest.js 等效程序

有人可以帮助并告诉我如何编写以下代码片段,该代码片段被编写为节点应用程序,以编写为仅具有 WebSockets 和网关类的嵌套应用程序?

编辑:在 main.ts 我写了这个: app.useWebSocketAdapter(new WsAdapter(app));

这就是我的网关类的样子:

0 投票
1 回答
1697 浏览

node.js - 在nestjs中的另一个拦截器中使用拦截器

我在里面创建一个拦截器,我想使用 FileInterceptor 但在 FileInterceptor 之后我收到错误声明

0 投票
1 回答
630 浏览

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 一起使用的字段。

我的问题是这是推荐的还是我错过了什么。

0 投票
1 回答
1297 浏览

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