

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用 Node.js 连接到 Neptune 数据库实例
<a name="access-graph-gremlin-node-js"></a>

**重要**  
选择正确的 Apache TinkerPop Gremlin 驱动程序版本对于与你的 Neptune 引擎版本兼容至关重要。使用不兼容的版本可能会导致连接失败或意外行为。有关版本兼容性的详细信息，请参阅[使用 Gremlin 访问 Neptune 图形](access-graph-gremlin.md)。

以下部分将指导您完成 Node.js 示例的运行，该示例连接到 Amazon Neptune 数据库实例并执行 Gremlin 遍历。

必须从与您的 Neptune 数据库实例位于同一虚拟私有云 (VPC) 中的 Amazon EC2 实例中按照这些说明操作。

开始之前，请执行以下操作：
+ 验证是否已安装 Node.js 版本 8.11 或更高版本。如果没有，请从 [Nodejs.org 网站](https://nodejs.org)下载并安装 Node.js。

**使用 Node.js 连接到 Neptune**

1. 输入以下命令以安装 `gremlin-javascript` 程序包：

   ```
   npm install gremlin
   ```

1. 创建名为 `gremlinexample.js` 的文件并在文本编辑器中打开它。

1. 将以下内容复制到 `gremlinexample.js` 文件中。*your-neptune-endpoint*替换为您的 Neptune 数据库实例的地址。

   有关查找 Neptune 数据库实例的地址的信息，请参阅[连接到 Amazon Neptune 端点](feature-overview-endpoints.md)部分。

   ```
   const gremlin = require('gremlin');
   const DriverRemoteConnection = gremlin.driver.DriverRemoteConnection;
   const Graph = gremlin.structure.Graph;
   
   dc = new DriverRemoteConnection('wss://your-neptune-endpoint:8182/gremlin',{});
   
   const graph = new Graph();
   const g = graph.traversal().withRemote(dc);
   
   g.V().limit(1).count().next().
       then(data => {
           console.log(data);
           dc.close();
       }).catch(error => {
           console.log('ERROR', error);
           dc.close();
       });
   ```

1. 输入以下命令以运行示例：

   ```
   node gremlinexample.js
   ```

上述示例通过使用 `g.V().limit(1).count().next()` 遍历返回图形中的单个顶点的计数。要查询其他内容，请将其替换为具有其中一种适当的结尾方法的其他 Gremlin 遍历。

**注意**  
要将遍历提交到服务器进行评估，需要 Gremlin 查询的最后一部分 `next()`。如果您未包含该方法或其它等效方法，该查询将不会提交到 Neptune 数据库实例。

以下方法将查询提交到 Neptune 数据库实例：
+ `toList()`
+ `toSet()`
+ `next()`
+ `nextTraverser()`
+ `iterate()`

如果您需要序列化并返回查询结果，请使用 `next()`，否则请使用 `iterate()`。

**重要**  
这是独立的 Node.js 示例。如果您计划在 Amazon Lambda 函数中运行这样的代码，请参阅[Lambda 函数示例](lambda-functions-examples.md)，了解有关在 Neptune Lambda 函数中 JavaScript 高效使用的详细信息。

## IAM 身份验证
<a name="access-graph-gremlin-nodejs-iam"></a>

Neptune 支持 [IAM 身份验证](iam-auth-enable.md)来控制对数据库集群的访问。如果您启用了 IAM 身份验证，则需要使用签名版本 4 签名来验证您的请求。有关从 JavaScript 客户端进行连接的详细说明和代码示例，请参阅[使用 Gremlin 的 IAM 身份验证连接到亚马逊 Neptune 数据库 JavaScript](gremlin-javascript-iam-auth.md)。