我目前正在学习Graphql(apollo),并在后端使用Node.js。
我在查询和转换方面取得了一些进展,但我在订阅方面停滞不前,我看了一些视频,读了一些博客,但我很难理解,因为他们使用的是前端框架,比如react,而我对react或其他前端javascript框架并不熟悉。
我只对学习它的后端感兴趣。
有人能帮我吗?
我有三个独立的查询(或者不管他们叫什么),我正在工作。
现在我想在有人添加新评论或创建新帖子时生成订阅。对于用户、评论和帖子,我已经有了添加、更新和删除的变体。
目前没有身份验证或授权。
2条答案
按热度按时间zhte4eai1#
你的问题更多的是帮助我实现这一点,而不是实际上问一个问题或问题,你所面临的一些步骤后,在一系列的顺序。
这可能有助于您学习和实现GraphQL订阅;
如果你已经尝试了一些东西,并面临着一堵墙,请添加您的代码和你做了什么,所以我可以帮助你在哪里你错了,或者你可以做什么希望。干杯。
q8l4jmvw2#
我提供的解决方案是在
@apollo/server v.4
上构建的,后端是expressMiddleware and mongodb/mongoose
,客户端是subscribeToMore
和updateQuery
,而不是useSubscription
钩子。不再支持
graphql-transport-ws
传输库;请改为使用graphql-ws
。该实现区分了三个主要集合:
User
、Post
和Comment
,以及针对post creation
、post modification
和用户authentication
的订阅。同样,自2022年12月起,以下设置和配置适用。
后端订阅:
安装以下依赖项:
我假设您已经配置了MongoDB模型;如果没有,您可能需要查看一下repo for a basic setup。
设置架构类型和解析器,如下面所示。
主入口服务器文件(例如index.js)中的代码可能如下所示,例如
型
现在是在Apollo Explorer沙箱中运行一些测试和检查的时候了。请认真定义所需的默认解析器,以避免Apollo服务器代表您发送空值。
要查看代码和实现,go to this repository.
编码快乐!