GraphQL 是一种新兴的 API 技术,它能够让开发者高效地构建数据同步 API。MongoDB 是一种流行的 NoSQL 数据库,它以 JSON 文档的形式存储数据。本文将介绍如何在前端使用 GraphQL 连接 MongoDB 数据库。
准备工作
在开始使用 GraphQL 连接 MongoDB 数据库之前,需要进行一些准备工作。
安装依赖
在开始使用 GraphQL 连接 MongoDB 数据库之前,需要先安装一些依赖。
安装 MongoDB 驱动程序:
--- ------- ------ -------
安装 graphql:
--- ------- ------ -------
数据库设置
使用 MongoDB 连接前,需要进行一些数据库设置。在 MongoDB 中,需要创建一个数据库和一个集合。
首先,在 MongoDB 中创建一个名为 notes
的数据库:
--- -----
然后,创建一个名为 notes
的集合(如果这个集合不存在):
----------------------------
GraphQL schema
GraphQL schema 描述了数据模型和数据类型。以下是一个简单的 GraphQL schema,用于描述 note
数据模型:
---- ---- - ---- --- ------ ------- -------- ------- - ---- ----- - ------ ------ -------- ----- ---- - ---- -------- - -------------- -------- -------- --------- ---- -------------- ---- ------ -------- -------- --------- ---- -------------- ----- ---- -
在这个 schema 中,Note
是一个数据模型,包含 _id
、title
和 content
字段。Query
包含 notes
和 note
字段,分别用于查询所有的 note 和一个指定 id 的 note。Mutation
包含 addNote
、updateNote
和 deleteNote
字段,分别用于添加、更新和删除 note。
GraphQL resolvers
GraphQL resolvers 是处理 GraphQL 查询、变更和 Subscription 的函数。以下是 GraphQL resolvers 的示例代码:
----- - -------- - - ------------------- ----- - ----- - - ---------------- ----- --------- - - ------ - ------ ----- -- -- - ----- -- - ----- -------- ------ ---------------------------------------- -- ----- ----- -------- - -- -- -- - ----- -- - ----- -------- ------ -------------------------------- ---- --- ------------ --- -- -- --------- - -------- ----- -------- - ------ ------- -- -- - ----- -- - ----- -------- ----- ------ - ----- ---------------------------------- ------ ------- --- ------ - ---- ------------------ ------ ------- -- -- ----------- ----- -------- - --- ------ ------- -- -- - ----- -- - ----- -------- ----- ---------------------------------- ---- --- ------------ -- - ----- - ------ ------- - --- ------ - ---- --- ------ ------- -- -- ----------- ----- -------- - -- -- -- - ----- -- - ----- -------- ----- ---- - ----- -------------------------------- ---- --- ------------ --- ----- ---------------------------------- ---- --- ------------ --- ------ ----- -- -- -- -------------- - ----------
在这个例子中,getQuery()
函数用于连接到 notes
集合。这个例子包含三个 resolver:
notes
resolver 在notes
集合中查找所有的 note。note
resolver 根据传入的 id 在notes
集合中查找一个 note。addNote
resolver 在notes
集合中添加一个新的 note,然后返回该 note。updateNote
resolver 根据传入的 id 更新notes
集合中的一个 note,并返回该 note。deleteNote
resolver 根据传入的 id 删除notes
集合中的一个 note,并返回该 note。
GraphQL server
最后一步是创建 GraphQL server,将上面的 schema 和 resolvers 组合在一起。以下是示例代码:
----- - ------------ - - --------------------------------- ----- ------- - ------------------- ----- - ------------ - - -------------- ----- --------- - ----------------------- ----- - -------- - - -------------------- ----- --- - ---------- -- ------ ----- ------ - --- -------------- --------- --------- --- ------------------------ ---- ----- ---------- --- ---------------- -- -- - ------------------- -- ------- -- ---- ------- ---
在这个例子中,我们使用 typeDefs
和 resolvers
创建了一个新的 ApolloServer
。server.applyMiddleware()
方法将 GraphQL server 注册到 Express 应用程序中。
结论
本文介绍了如何在前端使用 GraphQL 连接 MongoDB 数据库。我们介绍了如何创建一个简单的 GraphQL schema 和 resolver,并将它们组合成一个 GraphQL server。希望这篇文章对你有所帮助。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/67219a712e7021665e0829aa