AWS DynamoDB 是一种 NoSQL 数据库,它具有高度的可伸缩性和可用性。Node.js 开发者通常使用 AWS SDK for JavaScript 来访问 DynamoDB。然而,访问和操作 DynamoDB 数据表可能会变得有点乏味和复杂。dynamodb-enhanced 是一个开源的 npm 包,它为 DynamoDB 提供了一个更高级别的抽象层。这个包使用了 Fluent API 风格的 API,可以用更简单的方式实现 DyanmoDB 数据表的访问与操作。本文将详细介绍 dynamodb-enhanced 包的使用方法。
安装 dynamodb-enhanced
使用 npm 安装 dynamodb-enhanced 包:
npm install --save @aws/dynamodb-data-mapper @aws/dynamodb-enhanced
它的依赖包名称为 @aws/dynamodb-data-mapper
。
配置 AWS 环境
在使用 dynamodb-enhanced 前,需要配置 AWS 环境。AWS SDK for JavaScript 支持多种 AWS 认证类型。本文档将演示 AWS 环境的使用范例,你可以使用你自己的 AWS 账号替换示例中的 AWS 认证和区域。
-- -------------------- ---- ------- ----- - -------------- - - ------------------------------------ ----- ------ - --- ---------------- ------- ------------ ------------ - ------------ ------- ---------------- --------- -- ---
dynamodb-enhanced API
dynamodb-enhanced 提供了以下 API:
- DynamoDbTable:DynamoDB 数据表的管理器,在表上执行 CRUD 操作。
- DocumentClient:DynamoDB 数据表的通用访问器。
- QueryIterator:在表中执行查询操作。
- ScanIterator:在表上执行扫描操作。
在使用这些 API 之前,需要先定义 DynamoDB 数据表的模型。
定义数据表模型
通常,开发者都需要处理 DynamoDB 数据表的 schema 和数据类型,它们会作为参数传递到 DynamoDBClient 对象的方法中。定义数据表模型可以让你使用更简单的方式来处理这些内容,特别是在使用类型转换器时。类型转换器将自动将数据表的属性转换为 JavaScript 对象。示例代码:
-- -------------------- ---- ------- ----- - ---------- - - ------------------------------------- ----- - ------------- - - -------------------------------- ----- - --------- ---------- - - ---------------------------------- ----- ------ - --- -- --- ---- ----- ---- - ----------------- ---- - --------- - ----- -------- - ---- - -- ------ ------- --- --- ---- --- --- --- ----- ------ --- ----------- - ------ ------- - -- ------ ----- ------ --- ---- ---- ------ --- -------- - ------ - --- - ----- --------- -------- ------- -- ---- - ----- --------- -- ----- - ----- --------- -- -- - - ----- ----- - --- -------------- --- ------------ ------- ---------------- - ------------------- ----- -- ------------------ - ------------ ----- -- --- ---- --
CRUD 操作
插入数据
使用以下代码将新纪录插入到数据表中。
const user = new User('Alice', 30); await table.put(user);
更新数据
使用以下代码更新数据表中的一个记录:
// get a user with id 123 const user = (await table.get({ id: 123 })).Items[0]; user.age = 31; await table.put(user);
删除数据
使用以下代码从数据表中删除一个记录:
// get a user with id 123 const user = (await table.get({ id: 123 })).Items[0]; await table.delete(user);
查询数据
使用以下代码查询数据表中的记录:
for await (const user of table.query({ id: { eq: 123 }, })) { console.log(user) }
扫描数据
使用以下代码扫描数据表中的所有记录:
for await (const user of table.scan()) { console.log(user) }
结论
dynamodb-enhanced 是一个包含强大的工具的 npm 包,用于简化和提高 Node.js 开发者在 DynamoDB 上的工作效率。和使用原生 AWS SDK 相比,dynamodb-enhanced 的 API 具有更高的抽象层次,允许开发者可以用更少的代码实现同样复杂的功能。
此教程详细描述了 dynamodb-enhanced 包的安装、配置以及使用方法。我们希望这篇文章能对你的开发工作有所帮助,让你以更简单并高效的方式使用 DynamoDB。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60066dad7108f76aa73eca87