# @bitnine-oss/ag-driver 中文文档

规范地址：https://npmcn.com/package/%40bitnine-oss/ag-driver/

版本：0\.1\.0
npm 元数据更新时间：2022-04-04T19:12:37.524Z
中文译文更新时间：2026-11-08T04:37:35.242Z
软件包许可：Apache-2\.0

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40bitnine-oss/ag-driver
原文对照：https://npmcn.com/package/%40bitnine-oss/ag-driver/?lang=original
项目主页：https://github.com/bitnine-oss/agensgraph-nodejs#readme
源码仓库：https://github.com/bitnine-oss/agensgraph-nodejs

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：175 kB，9 个文件
- 模块格式：CommonJS
- TypeScript 类型：未声明
- 运行依赖：2 个
- 首次发布：2021-04-15T04:36:26.273Z
- 最新版本发布：2021-04-15T04:36:26.746Z
- 近 30 天下载量：6387（2026-10-08 至 2026-11-06，npm 官方下载统计）
- 已发布版本数：1（近 12 个月 0 个）

## 中文简介

节点的 AgensGraph 客户端

## 安装

```sh
npm install @bitnine-oss/ag-driver
```

也可以使用：`pnpm add @bitnine-oss/ag-driver`、`yarn add @bitnine-oss/ag-driver`、`bun add @bitnine-oss/ag-driver`

## README

# @ bitnine-oss/ agensgraph- 驱动程序

节点的 AgensGraph 客户端 。 与 [节点后置](https://github.com/brianc/node-postgres)。 。 。 . 添加节点- postgres 的 AgensGraph 兼容性 。 支持 Cypher 查询语言以及顶点、边缘和路径图 数据类型.

## 使用量

### 安装

```sh
# if you are using yarn
$ yarn add pg @bitnine-oss/ag-driver

# or npm
$ npm install pg @bitnine-oss/ag-driver
```

## 连接

要通过节点-js与 AgensGraph 连接, 可以通过环境变量, 程序化, 或使用连接连接 URI (英语).

通过将一个带有配置值的对象传递到您的 AgensGraph 客户端并使用 client.connect () 要建立连接 :

```js
var ag = require('@bitnine-oss/agensgraph-driver');
var config = {
    user: 'username',
    password: 'password',
    database: 'database name of agensgraph',
    host: '127.0.0.1',
    port: 5432
};

const client = new ag.Client(config);
client.connect();
client.end();
```

使用客户端. end () 终止连接数据库 。 没有回调功能的调用客户端. end () 将会 回到承诺.

## 查询

要从 AgensGraph 获取数据,请使用查询() API 函数查询数据库 。 有多种方法可以发送 查询,包括直接通过文本、使用参数、在对象中传递以及使用已准备好的语句。 这个 以下举例说明了不同的可能的查询方法.

用户可以通过将文本直接传递给客户端.query(:

```js
var ag = require('@bitnine-oss/agensgraph-driver');
const client = new ag.Client(Config);

client.connect();
client.query('SET graph_path = gpt'); //set graph path to gpt
client.query("MATCH (a:person)-[r:knows]->(b:person) WHERE b.name = 'Adam' RETURN a,r,b;", function (err, res) {
    if (err) {
        throw err;
    } else {
        console.log(res.rows);
    }
});
client.end();
```

用户也可以发送参数化查询:

```js
const text = "MATCH (a:person)-[:knows]->(b:person) WHERE b.name = $1 RETURN a;"
const values = ['Adam'];

client.connect();
client.query('SET graph_path = gpt'); //set graph path to gpt
client.query(text, values, function (err, res) {
    if (err) {
        throw err;
    } else {
        console.log(res.rows);
    }
});
```

通过配置对象 :

```js
const query = {
    text: "MATCH (a:person)-[:knows]->(b:person) WHERE b.name = $1 RETURN a;",
    values: ['Adam']
}

client.connect();
client.query('SET graph_path = gpt'); //set graph path to gpt
client.query(query, function (err, res) {
    if (err) {
        throw err;
    } else {
        console.log(res.rows);
    }
});
```

用户也可以使用已命名的已准备的语句. 使用已准备好的语句可以缓存查询执行计划 每个连接语句上的服务器。 一旦一个查询名称被发送到服务器,它就会被解析并被执行. 打开 之后发送查询会跳过解析请求,转而发送查询名称:

```js
const query = {
    name: 'fetch-data',
    text: "MATCH(n) WHERE n.name = 'Eve' RETURN n"
}

client.query(query, (err, res) => {
    if (err) {
        throw err;
    } else {
        console.log(res.rows);
    }
});

```

## 创建数据

要在 AgensGraph 中创建数据, 查询 () API功能再次用于查询数据库. 下面是一个例子: 通过将文本直接传递给客户端.query( ) 创建 Cypher 数据 :

```js
var ag = require('@bitnine-oss/ag-driver');
const client = new ag.Client(Config);

client.connect();
client.query('CREATE GRAPH gpt');
client.query('SET graph_path = gpt');
client.query("CREATE (a:person {name:'Alice'})-[r:knows {from: 'school'}]->(b:person {name: 'Bob'}) RETURN a,r,b", function (err, res) {
    if (err) {
        throw err;
    } else {
        a = res.rows[0].a;
        r = res.rows[0].r;
        b = res.rows[0].b;
        console.log(a.label);
        console.log(a.id);
        console.log(a.props.name);

        console.log(r.label);
        console.log(r.id);
        console.log(r.startVertexId);
        console.log(r.endVertexID);
        console.log(r.props.from);

        console.log(b.label);
        console.log(b.id);
        console.log(b.props.name);
    }
});

```

## 图表数据类型

以下是一个简要说明,详细说明了由garnsgraph-nodejs扩展处理的不同数据类型.

| 类函数 | 说明 | 属性 |
| --- | --- | --- |
| `GraphId` | 对应 `graphid` 类型. | 偶联、偶联 |
| `Vertex` | 相应 `vertex` 类型。 它支持标签和属性的存取方法. | 标签、标识、道具 |
| `Edge` | 相应 `edge` 类型。 它支持标签和属性的存取方法. | 标签、 id、 开始、 结束、 道具 |
| `Path` | 相应 `graphpath` 类型。 它支持路径长度的访问方法,支持路径中顶点和边缘的访问. | 起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起去起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起 |

## 常见问题

### @bitnine-oss/ag-driver 是什么？

节点的 AgensGraph 客户端

### 如何安装 @bitnine-oss/ag-driver？

在项目目录运行 npm install @bitnine-oss/ag-driver，或使用 pnpm add / yarn add / bun add。

### @bitnine-oss/ag-driver 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/bitnine-oss\_\_ag-driver 是否存在。

### @bitnine-oss/ag-driver 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### @bitnine-oss/ag-driver 可以商用吗？

@bitnine-oss/ag-driver 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @bitnine-oss/ag-driver 的下载量有多少？

根据 npm 官方下载统计，@bitnine-oss/ag-driver 在 2026/10/08 – 2026/11/06 这 30 天内被下载 6,387 次，日均约 213 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @bitnine-oss/ag-driver 还在维护吗？

最新版本 0\.1\.0 发布于 2021/04/15（5 年前）；至今共发布 1 个版本，其中过去 12 个月发布了 0 个；首次发布于 2021/04/15。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

