

适用于 JavaScript 的 AWS SDK v2 已终止支持。建议您迁移到 [适用于 JavaScript 的 AWS SDK v3](https://docs.aws.amazon.com//sdk-for-javascript/v3/developer-guide/)。有关更多详情和如何迁移的信息，请参阅本[公告](https://aws.amazon.com/blogs//developer/announcing-end-of-support-for-aws-sdk-for-javascript-v2/)。

# 在 DynamoDB 中创建和使用表
<a name="dynamodb-examples-using-tables"></a>

![\[JavaScript code example that applies to Node.js execution\]](http://docs.aws.amazon.com/zh_cn/sdk-for-javascript/v2/developer-guide/images/nodeicon.png)

**此 Node.js 代码示例演示：**
+ 如何创建和管理用于存储及从 DynamoDB 检索数据的表。

## 情景
<a name="dynamodb-examples-using-tables-scenario"></a>

类似于其他数据库系统，DynamoDB 将数据存储在表中。DynamoDB 表是数据的集合，这些数据按照类似于行的项目来排列。要在 DynamoDB 中存储或访问数据，您需要创建并使用表。

在本示例中，您使用一系列 Node.js 模块对 DynamoDB 表执行基本操作。代码使用 SDK for JavaScript，通过 `AWS.DynamoDB` 客户端类的以下方法来创建和处理表：
+ [createTable](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html#createTable-property)
+ [listTables](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html#listTables-property)
+ [describeTable](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html#describeTable-property)
+ [deleteTable](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html#deleteTable-property)

## 先决条件任务
<a name="dynamodb-examples-using-tables-prerequisites"></a>

要设置和运行此示例，请先完成以下任务：
+ 安装 Node.js。有关更多信息，请参阅 [Node.js](https://nodejs.org) 网站。
+ 使用用户凭证创建共享配置文件。有关提供共享凭证文件的更多信息，请参阅[从共享凭证文件加载 Node.js 中的凭证](loading-node-credentials-shared.md)。

## 创建表
<a name="dynamodb-examples-using-tables-creating-a-table"></a>

创建文件名为 `ddb_createtable.js` 的 Node.js 模块。请确保按前面所示配置开发工具包。要访问 DynamoDB，请创建一个 `AWS.DynamoDB` 服务对象。创建一个 JSON 对象，其中包含创建表所需的参数，在本示例中包括各个属性的名称和数据类型、关键架构、表的名称以及要预配置的吞吐量单位。调用 DynamoDB 服务对象的 `createTable` 方法。

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create the DynamoDB service object
var ddb = new AWS.DynamoDB({ apiVersion: "2012-08-10" });

var params = {
  AttributeDefinitions: [
    {
      AttributeName: "CUSTOMER_ID",
      AttributeType: "N",
    },
    {
      AttributeName: "CUSTOMER_NAME",
      AttributeType: "S",
    },
  ],
  KeySchema: [
    {
      AttributeName: "CUSTOMER_ID",
      KeyType: "HASH",
    },
    {
      AttributeName: "CUSTOMER_NAME",
      KeyType: "RANGE",
    },
  ],
  ProvisionedThroughput: {
    ReadCapacityUnits: 1,
    WriteCapacityUnits: 1,
  },
  TableName: "CUSTOMER_LIST",
  StreamSpecification: {
    StreamEnabled: false,
  },
};

// Call DynamoDB to create the table
ddb.createTable(params, function (err, data) {
  if (err) {
    console.log("Error", err);
  } else {
    console.log("Table Created", data);
  }
});
```

要运行示例，请在命令行中键入以下内容。

```
node ddb_createtable.js
```

此示例代码可在 [GitHub 上的此处](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascript/example_code/dynamodb/ddb_createtable.js)找到。

## 列出表
<a name="dynamodb-examples-using-tables-listing-tables"></a>

创建文件名为 `ddb_listtables.js` 的 Node.js 模块。请确保按前面所示配置开发工具包。要访问 DynamoDB，请创建一个 `AWS.DynamoDB` 服务对象。创建一个 JSON 对象，其中包含列出表所需的参数，在此示例中将列出的表数量限制为 10。调用 DynamoDB 服务对象的 `listTables` 方法。

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create the DynamoDB service object
var ddb = new AWS.DynamoDB({ apiVersion: "2012-08-10" });

// Call DynamoDB to retrieve the list of tables
ddb.listTables({ Limit: 10 }, function (err, data) {
  if (err) {
    console.log("Error", err.code);
  } else {
    console.log("Table names are ", data.TableNames);
  }
});
```

要运行示例，请在命令行中键入以下内容。

```
node ddb_listtables.js
```

此示例代码可在 [GitHub 上的此处](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascript/example_code/dynamodb/ddb_listtables.js)找到。

## 描述表
<a name="dynamodb-examples-using-tables-describing-a-table"></a>

创建文件名为 `ddb_describetable.js` 的 Node.js 模块。请确保按前面所示配置开发工具包。要访问 DynamoDB，请创建一个 `AWS.DynamoDB` 服务对象。创建一个 JSON 对象，其中包含描述表所需的参数，在此示例中包括提供作为命令行参数的表的名称。调用 DynamoDB 服务对象的 `describeTable` 方法。

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create the DynamoDB service object
var ddb = new AWS.DynamoDB({ apiVersion: "2012-08-10" });

var params = {
  TableName: process.argv[2],
};

// Call DynamoDB to retrieve the selected table descriptions
ddb.describeTable(params, function (err, data) {
  if (err) {
    console.log("Error", err);
  } else {
    console.log("Success", data.Table.KeySchema);
  }
});
```

要运行示例，请在命令行中键入以下内容。

```
node ddb_describetable.js TABLE_NAME
```

此示例代码可在 [GitHub 上的此处](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascript/example_code/dynamodb/ddb_describetable.js)找到。

## 删除表
<a name="dynamodb-examples-using-tables-deleting-a-table"></a>

创建文件名为 `ddb_deletetable.js` 的 Node.js 模块。请确保按前面所示配置开发工具包。要访问 DynamoDB，请创建一个 `AWS.DynamoDB` 服务对象。创建一个 JSON 对象，其中包含删除表所需的参数，在此示例中包括提供作为命令行参数的表的名称。调用 DynamoDB 服务对象的 `deleteTable` 方法。

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create the DynamoDB service object
var ddb = new AWS.DynamoDB({ apiVersion: "2012-08-10" });

var params = {
  TableName: process.argv[2],
};

// Call DynamoDB to delete the specified table
ddb.deleteTable(params, function (err, data) {
  if (err && err.code === "ResourceNotFoundException") {
    console.log("Error: Table not found");
  } else if (err && err.code === "ResourceInUseException") {
    console.log("Error: Table in use");
  } else {
    console.log("Success", data);
  }
});
```

要运行示例，请在命令行中键入以下内容。

```
node ddb_deletetable.js TABLE_NAME
```

此示例代码可在 [GitHub 上的此处](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascript/example_code/dynamodb/ddb_deletetable.js)找到。