dgraph-io/dgraph-js

Official Dgraph JavaScript client

解决的问题

构建需要与 Dgraph(一种分布式图数据库)通信的 JavaScript 应用程序需要一个可靠的客户端。该库通过提供用于模式管理、事务、查询和变更的高级 API,免去了您自己编写底层 gRPC 代码的需要。它还处理连接细节、身份验证和 TLS,以便您可以专注于图数据。

工作原理

客户端使用 gRPC 与 Dgraph 集群通信。您可以使用类似 dgraph://localhost:9080 的连接字符串进行连接,或包含凭据、API 密钥或 TLS 设置的连接字符串。它紧密遵循官方 Go 客户端的设计。

关键操作包括:

  • Alter:使用 Operation 对象更改模式或删除数据。
  • 事务:创建只读或尽力而为的事务,显式提交或丢弃它们。
  • 变更:以 JSON 或 RDF N-Quads 格式插入数据,可选立即提交或跳过索引冲突检查。
  • 查询:使用变量运行 GraphQL± 查询,获取 JSON 响应。
  • Upserts:在一个请求中组合查询和变更,可选条件执行。
  • 多租户:使用 loginIntoNamespace 登录到特定命名空间。
  • 调试模式:在操作期间打印有用的调试消息。
  • 头部:向 gRPC 调用传递自定义元数据,如认证令牌。

所有客户端方法返回 Promise,该库同时适用于 JavaScript 和 TypeScript(借助类型包)。

适用人群

使用 Dgraph 作为图数据库的 Node.js 应用程序开发者。适合任何需要从 JavaScript 执行图查询、管理模式或运行事务的人,尤其是那些已经熟悉 Dgraph 查询语言和概念的人。

亮点

  • 由 Dgraph 维护的官方客户端,确保与当前服务器版本兼容。
  • 基于 gRPC 构建,实现高效、低延迟通信。
  • 支持多个 Dgraph 版本,每个版本有对应的客户端发布。
  • 支持包含 ACL 凭据、API 密钥、Bearer 令牌和 TLS 选项的连接字符串。
  • 允许多租户登录到特定命名空间。
  • 提供事务操作,包括提交、丢弃和重试指导。
  • 处理 JSON 和 RDF N-Quad 变更。
  • 支持使用 @if 指令的 upsert 和条件变更。
  • 包含调试和元数据头部功能。
  • 包含快速入门和 TLS 设置的示例项目。

相关

  • 项目
  • 项目
  • 项目
  • 项目