From 5390306f7888aeee11c7be02713df76ea6f93670 Mon Sep 17 00:00:00 2001 From: Docsite Preview Bot <> Date: Wed, 7 Feb 2024 03:13:14 +0000 Subject: [PATCH] Preview PR https://github.com/pingcap/docs-cn/pull/16200 and this preview is triggered from commit https://github.com/pingcap/docs-cn/pull/16200/commits/4263151f66a22674eca6eec3f1218c7bdcf5b2ec --- ...dev-guide-sample-application-aws-lambda.md | 136 +++++++++--------- .../dev-guide-sample-application-nextjs.md | 84 +++++------ ...ide-sample-application-nodejs-sequelize.md | 86 ++++++----- 3 files changed, 151 insertions(+), 155 deletions(-) diff --git a/markdown-pages/zh/tidb/release-7.5/develop/dev-guide-sample-application-aws-lambda.md b/markdown-pages/zh/tidb/release-7.5/develop/dev-guide-sample-application-aws-lambda.md index 23444640..73fa1871 100644 --- a/markdown-pages/zh/tidb/release-7.5/develop/dev-guide-sample-application-aws-lambda.md +++ b/markdown-pages/zh/tidb/release-7.5/develop/dev-guide-sample-application-aws-lambda.md @@ -1,20 +1,20 @@ --- -title: 在 AWS Lambda 函数中使用 mysql2 连接 TiDB -summary: 本文介绍如何在 AWS Lambda 函数中使用 TiDB 和 mysql2 构建 CRUD 应用程序,并提供了一个简单的示例代码片段。 +title: 在 AWS Lambda 函数中使用 mysql2 连接到 TiDB +summary: 本文介绍如何在 AWS Lambda 函数中使用 TiDB 和 mysql2 构建一个 CRUD 应用程序,并给出了简单示例代码片段。 --- -# 在 AWS Lambda 函数中使用 mysql2 连接 TiDB +# 在 AWS Lambda 函数中使用 mysql2 连接到 TiDB -TiDB 是一个兼容 MySQL 的数据库,[AWS Lambda 函数](https://aws.amazon.com/lambda/) 是一个计算服务,[node-mysql2](https://github.com/sidorares/node-mysql2) 是一个与 [mysqljs/mysql](https://github.com/mysqljs/mysql) 兼容的面向 Node.js 的 MySQL 驱动 +TiDB 是一个兼容 MySQL 的数据库。[AWS Lambda 函数](https://aws.amazon.com/lambda/) 是一个计算服务,[node-mysql2](https://github.com/sidorares/node-mysql2) 是一个与 [mysqljs/mysql](https://github.com/mysqljs/mysql) 兼容的面向 Node.js 的 MySQL 驱动。 -在本教程中,您可以学习如何在AWS Lambda函数中使用TiDB和mysql2来完成以下任务: +本文档将展示如何在 AWS Lambda 函数中使用 TiDB 和 mysql2 来完成以下任务: - 配置你的环境。 - 使用 node-mysql2 驱动连接到 TiDB 集群。 - 构建并运行你的应用程序。你也可以参考[示例代码片段](#示例代码片段),完成基本的 CRUD 操作。 -- 部署您的AWS Lambda函数。 +- 部署你的 AWS Lambda 函数。 -> **注意** +> **Note** > > 本文档适用于 TiDB Serverless 和本地部署的 TiDB。 @@ -25,53 +25,53 @@ TiDB 是一个兼容 MySQL 的数据库,[AWS Lambda 函数](https://aws.amazon - 在你的机器上安装 [Node.js](https://nodejs.org/en) 18.x 或以上版本。 - 在你的机器上安装 [Git](https://git-scm.com/downloads)。 - 准备一个 TiDB 集群。 -- 一个具有管理员权限的 [AWS 用户](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html)。 -- [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) -- [AWS SAM CLI](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/install-sam-cli.html) +- 准备一个具有管理员权限的 [AWS IAM 用户](https://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/id_users.html)。 +- 在你的机器上安装 [AWS CLI](https://docs.aws.amazon.com/zh_cn/cli/latest/userguide/getting-started-install.html)。 +- 在你的机器上安装 [AWS SAM CLI](https://docs.aws.amazon.com/zh_cn/serverless-application-model/latest/developerguide/install-sam-cli.html)。 -**如果你还没有 TiDB 集群,可以按照以下方式创建:** +如果你还没有 TiDB 集群,可以按照以下方式创建: - (推荐方式)参考[创建 TiDB Serverless 集群](/develop/dev-guide-build-cluster-in-cloud.md#第-1-步创建-tidb-serverless-集群),创建你自己的 TiDB Cloud 集群。 - 参考[部署本地测试 TiDB 集群](/quick-start-with-tidb.md#部署本地测试集群)或[部署正式 TiDB 集群](/production-deployment-using-tiup.md),创建本地集群。 -如果您还没有AWS账户或用户,您可以按照 [Lambda 入门](https://docs.aws.amazon.com/zh_cn/lambda/latest/dg/getting-started.html) 指南中的步骤来创建它们。 +如果你还没有 AWS 账户或用户,可以按照 [Lambda 入门](https://docs.aws.amazon.com/zh_cn/lambda/latest/dg/getting-started.html)文档中的步骤来创建它们。 ## 运行代码并连接到 TiDB 本小节演示如何运行示例应用程序的代码,并连接到 TiDB。 -> **注意** +> **Note** > ->要获取完整的代码片段和运行说明,请参考 [tidb-samples/tidb-aws-lambda-quickstart](https://github.com/tidb-samples/tidb-aws-lambda-quickstart) GitHub存储库。 +> 完整代码及其运行方式,见代码仓库 [tidb-samples/tidb-aws-lambda-quickstart](https://github.com/tidb-samples/tidb-aws-lambda-quickstart)。 -### 步骤 1:克隆示例应用程序仓库 +### 第 1 步:克隆示例代码仓库到本地 -在终端窗口中运行以下命令来克隆示例代码仓库: +运行以下命令,将示例代码仓库克隆到本地: ```bash git clone git@github.com:tidb-samples/tidb-aws-lambda-quickstart.git cd tidb-aws-lambda-quickstart ``` -### 步骤 2:安装依赖 +### 第 2 步:安装依赖 -运行以下命令来安装示例应用程序所需的包(包括 mysql2): +运行以下命令,安装示例代码所需要的依赖(包括 mysql2): ```bash npm install ``` -### 步骤 3:配置连接信息 +### 第 3 步:配置连接信息 -根据您选择的 TiDB 部署选项,连接到您的 TiDB 集群。 +根据不同的 TiDB 部署方式,使用不同的方法连接到 TiDB 集群。
-1. 导航到 [**Clusters**](https://tidbcloud.com/console/clusters) 页面,然后点击目标集群的名称,进入其概览页面。 +1. 在 TiDB Cloud 的 [**Clusters**](https://tidbcloud.com/console/clusters) 页面中,选择你的 TiDB Serverless 集群,进入集群的 **Overview** 页面。 -2. 在右上角点击 **Connect**。将显示一个连接对话框。 +2. 点击右上角的 **Connect** 按钮,将会弹出连接对话框。 3. 确认对话框中的选项配置和你的运行环境一致。 @@ -82,15 +82,15 @@ npm install > **Note** > - > 在 Node.js 应用程序中,您无需提供 SSL CA 证书,因为在建立 TLS(SSL)连接时,默认情况下 Node.js 使用内置的 [Mozilla CA 证书](https://wiki.mozilla.org/CA/Included_Certificates)。 + > 在 Node.js 应用程序中,你无需提供 SSL CA 证书,因为在建立 TLS (SSL) 连接时,默认情况下 Node.js 使用内置的 [Mozilla CA 证书](https://wiki.mozilla.org/CA/Included_Certificates)。 4. 如果你还没有设置密码,点击 **Generate Password** 按钮生成一个随机的密码。 > **Tip** > - > 如果您之前生成过密码,您可以使用原始密码,或者点击 **Reset Password** 来生成一个新密码。 + > 如果你之前已经生成过密码,可以直接使用原密码,或点击 **Reset Password** 重新生成密码。 -5. 将相应的连接字符串复制并粘贴到 `env.json` 文件中。以下是一个示例: +5. 编辑 `env.json` 文件,按照如下格式设置连接信息,将占位符 `{}` 替换为从连接对话框中复制的参数值: ```json { @@ -103,13 +103,11 @@ npm install } ``` - 请将连接对话框中获取的值替换{}中的占位符。 -
-
+
-将相应的连接字符串复制并粘贴到 `env.json` 文件中。以下是一个示例: +编辑 `env.json` 文件,按照如下格式设置连接信息,将占位符 `{}` 替换为你的 TiDB 集群的连接参数值: ```json { @@ -126,37 +124,37 @@ npm install -### 步骤 4:运行示例应用程序 +### 第 4 步:运行代码并查看结果 -1. (先决条件)安装[AWS SAM CLI](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/install-sam-cli.html)。 +1. (前置需求)安装 [AWS SAM CLI](https://docs.aws.amazon.com/zh_cn/serverless-application-model/latest/developerguide/install-sam-cli.html)。 -2. 构建捆绑包: +2. 构建应用程序包: ```bash npm run build ``` -3. 调用示例Lambda函数: +3. 调用示例 Lambda 函数: ```bash sam local invoke --env-vars env.json -e events/event.json "tidbHelloWorldFunction" ``` -4. 在终端中检查输出。如果输出类似于以下内容,则连接成功: +4. 检查终端中的输出。如果输出类似于以下内容,则表示连接成功: ```bash {"statusCode":200,"body":"{\"results\":[{\"Hello World\":\"Hello World\"}]}"} ``` -确认连接成功后,您可以按照 [下一节](#部署-aws-lambda-函数) 中的步骤来部署AWS Lambda函数。 +确认连接成功后,你可以按照[部署 AWS Lambda 函数](#部署-aws-lambda-函数)中的步骤进行部署。 ## 部署 AWS Lambda 函数 -您可以使用 [SAM CLI](#sam-cli-部署推荐) 或 [AWS Lambda 控制台](#web控制台部署) 来部署 AWS Lambda 函数。 +你可以通过 [SAM CLI](#通过-sam-cli-部署推荐) 或 [AWS Lambda 控制台](#通过网页控制台部署)部署 AWS Lambda 函数。 -### SAM CLI 部署(推荐) +### 通过 SAM CLI 部署(推荐) -1. ([前置需求](#前置需求)) 安装 [AWS SAM CLI](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/install-sam-cli.html). +1. ([前置需求](#前置需求))安装 [AWS SAM CLI](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/install-sam-cli.html)。 2. 构建应用程序包: @@ -175,7 +173,7 @@ npm install TIDB_PASSWORD: {password} ``` -4. 设置环境变量 (参考 [使用短期凭证进行身份验证](https://docs.aws.amazon.com/zh_cn/cli/latest/userguide/cli-authentication-short-term.html)): +4. 参考[使用短期凭证进行身份验证](https://docs.aws.amazon.com/zh_cn/cli/latest/userguide/cli-authentication-short-term.html)文档,设置 AWS 环境变量: ```bash export AWS_ACCESS_KEY_ID={your_access_key_id} @@ -218,7 +216,7 @@ npm install # Successfully created! ``` -### Web控制台部署 +### 通过网页控制台部署 1. 构建应用程序包: @@ -230,33 +228,33 @@ npm install # dist/index.zip ``` -2. 访问 [AWS Lambda 控制台](https://console.aws.amazon.com/lambda/home#/functions). +2. 访问 [AWS Lambda 控制台](https://console.aws.amazon.com/lambda/home#/functions)。 -3. 按照 [使用 Node.js 构建 Lambda 函数](https://docs.aws.amazon.com/zh_cn/lambda/latest/dg/lambda-nodejs.html) 中的步骤创建一个Node.js Lambda函数。 +3. 按照[使用 Node.js 构建 Lambda 函数](https://docs.aws.amazon.com/zh_cn/lambda/latest/dg/lambda-nodejs.html)中的步骤创建一个Node.js Lambda 函数。 -4. 按照 [.zip 文件存档](https://docs.aws.amazon.com/zh_cn/lambda/latest/dg/gettingstarted-package.html#gettingstarted-package-zip) 中的步骤,上传dist/index.zip文件。 +4. 按照 [Lambda 部署程序包](https://docs.aws.amazon.com/zh_cn/lambda/latest/dg/gettingstarted-package.html#gettingstarted-package-zip)中的步骤,上传 `dist/index.zip` 文件。 -5. 在 Lambda 函数 中[复制和配置相应的连接字符串](https://docs.aws.amazon.com/zh_cn/lambda/latest/dg/configuration-envvars.html)。 +5. 在 Lambda 函数中[复制并配置相应的连接字符串](https://docs.aws.amazon.com/zh_cn/lambda/latest/dg/configuration-envvars.html)。 - 1. 在Lambda控制台的 [函数](https://console.aws.amazon.com/lambda/home#/functions) 页面中,选择**配置**选项卡,然后选择**环境变量**。 - 2. 选择**编辑**。 - 3. 添加数据库访问凭据,按照以下步骤进行操作: + 1. 在 Lambda 控制台的[**函数**](https://console.aws.amazon.com/lambda/home#/functions)页面中,选择**配置** > **环境变量**。 + 2. 点击**编辑**。 + 3. 为添加数据库访问凭证,按照以下步骤进行操作: - - 选择**添加环境变量**,然后在**键**中输入 `TIDB_HOST` ,在**值**中输入 主机名。 - - 选择**添加环境变量**,然后在**键**中输入 `TIDB_PORT` ,在**值**中输入 端口号(默认`4000`)。 - - 选择**添加环境变量**,然后在**键**中输入 `TIDB_USER` ,在**值**中输入 用户名。 - - 选择**添加环境变量**,然后在**键**中输入 `TIDB_PASSWORD` ,在**值**中输入 创建数据库时输入的密码。 - - 选择**保存** + - 选择**添加环境变量**,然后在**键**中输入 `TIDB_HOST`,在**值**中输入主机名。 + - 选择**添加环境变量**,然后在**键**中输入 `TIDB_PORT`,在**值**中输入端口号(默认 `4000`)。 + - 选择**添加环境变量**,然后在**键**中输入 `TIDB_USER`,在**值**中输入用户名。 + - 选择**添加环境变量**,然后在**键**中输入 `TIDB_PASSWORD`,在**值**中输入数据库的密码。 + - 点击**保存**。 ## 示例代码片段 你可参考以下关键代码片段,完成自己的应用开发。 -整代码及其运行方式,见代码仓库 [tidb-samples/tidb-aws-lambda-quickstart](https://github.com/tidb-samples/tidb-aws-lambda-quickstart)。 +完整代码及其运行方式,见代码仓库 [tidb-samples/tidb-aws-lambda-quickstart](https://github.com/tidb-samples/tidb-aws-lambda-quickstart)。 ### 连接到 TiDB -以下代码使用环境变量中定义的选项建立与 TiDB 的连接: +下面的代码使用环境变量中定义的连接选项来建立与 TiDB 集群的连接。 ```typescript // lib/tidb.ts @@ -291,29 +289,29 @@ export function getPool(): mysql.Pool { ### 插入数据 -以下查询创建一个单独的 `Players` 记录并返回一个 `ResultSetHeader` 对象: +下面的查询会创建一条单独的 `Player` 记录,并返回一个 `ResultSetHeader` 对象: ```typescript const [rsh] = await pool.query('INSERT INTO players (coins, goods) VALUES (?, ?);', [100, 100]); console.log(rsh.insertId); ``` -要了解更多信息,请参考 [插入数据](/develop/dev-guide-insert-data.md)。 +更多信息参考[插入数据](/develop/dev-guide-insert-data.md)。 ### 查询数据 -以下查询返回一个 `Players` 记录,其 ID 为 `1`: +下面的查询会返回一条 `Player` 记录,其 ID 为 `1`: ```typescript const [rows] = await pool.query('SELECT id, coins, goods FROM players WHERE id = ?;', [1]); console.log(rows[0]); ``` -要了解更多信息,请参考 [查询数据](/develop/dev-guide-get-data-from-single-table.md)。 +更多信息参考[查询数据](/develop/dev-guide-get-data-from-single-table.md)。 ### 更新数据 -以下查询将 `50` 个硬币和 `50` 个商品添加到 `ID` 为 `1` 的 `Player` 中: +下面的查询会将 ID 为 `1` 的 `Player` 记录的 `coins` 和 `goods` 字段的值分别增加 `50`: ```typescript const [rsh] = await pool.query( @@ -323,35 +321,35 @@ const [rsh] = await pool.query( console.log(rsh.affectedRows); ``` -要了解更多信息,请参考 [更新数据](/develop/dev-guide-update-data.md)。 +更多信息参考[更新数据](/develop/dev-guide-update-data.md)。 ### 删除数据 -以下查询删除一个 `Players` 记录,其 ID 为 `1`: +下面的查询会删除一条 `Player` 记录,其 ID 为 `1`: ```typescript const [rsh] = await pool.query('DELETE FROM players WHERE id = ?;', [1]); console.log(rsh.affectedRows); ``` -要了解更多信息,请参考 [删除数据](/develop/dev-guide-delete-data.md)。 +更多信息参考[删除数据](/develop/dev-guide-delete-data.md)。 ## 注意事项 - 推荐使用[连接池](https://github.com/sidorares/node-mysql2#using-connection-pools)来管理数据库连接,以减少频繁建立和销毁连接所带来的性能开销。 - 为了避免 SQL 注入的风险,推荐使用[预处理语句](https://github.com/sidorares/node-mysql2#using-prepared-statements)执行 SQL。 -- 在不涉及大量复杂 SQL 语句的场景下,推荐使用 ORM 框架 (例如:[Sequelize](https://sequelize.org/)、[TypeORM](https://typeorm.io/) 或 [Prisma](https://www.prisma.io/)) 来提升你的开发效率。 -- 为了为你的应用程序构建一个RESTful API,建议 [将 AWS Lambda 与 Amazon API Gateway 结合使用](https://docs.aws.amazon.com/zh_cn/lambda/latest/dg/services-apigateway.html)。 -- 要设计使用TiDB Serverless和AWS Lambda的高性能应用程序,请参考这篇[博客文章](https://aws.amazon.com/blogs/apn/designing-high-performance-applications-using-serverless-tidb-cloud-and-aws-lambda/)。 +- 在不涉及大量复杂 SQL 语句的场景下,推荐使用 ORM 框架(例如:[Sequelize](https://sequelize.org/)、[TypeORM](https://typeorm.io/) 或 [Prisma](https://www.prisma.io/))来提升你的开发效率。 +- 如需为你的应用程序构建一个 RESTful API,建议[将 AWS Lambda 与 Amazon API Gateway 结合使用](https://docs.aws.amazon.com/zh_cn/lambda/latest/dg/services-apigateway.html)。 +- 关于使用 TiDB Serverless 和 AWS Lambda 设计高性能应用程序的更多信息,可以参考这篇[博客文章](https://aws.amazon.com/blogs/apn/designing-high-performance-applications-using-serverless-tidb-cloud-and-aws-lambda/)。 ## 下一步 -- 要了解如何在AWS Lambda函数中使用TiDB的更多细节,请参考我们的 [TiDB-Lambda-integration/aws-lambda-bookstore Demo](https://github.com/pingcap/TiDB-Lambda-integration/blob/main/aws-lambda-bookstore/README.md)。你也可以使用AWS API Gateway来构建你的应用程序的RESTful API。 +- 关于在 AWS Lambda 函数中使用 TiDB 的更多细节,可以参考 [`TiDB-Lambda-integration/aws-lambda-bookstore` 示例程序](https://github.com/pingcap/TiDB-Lambda-integration/blob/main/aws-lambda-bookstore/README.md)。你也可以使用 AWS API Gateway 为你的应用程序构建 RESTful API。 - 关于 node-mysql2 的更多使用方法,可以参考 [node-mysql2 的 GitHub 仓库](https://github.com/sidorares/node-mysql2)。 -- 从[AWS Lambda的开发者指南](https://docs.aws.amazon.com/zh_cn/lambda/latest/dg/welcome.html)中了解更多关于AWS Lambda的用法。 +- 关于 AWS Lambda 的更多使用方法,可以参考 [AWS Lambda 开发者指南](https://docs.aws.amazon.com/zh_cn/lambda/latest/dg/welcome.html)。 - 你可以继续阅读开发者文档的其它章节来获取更多 TiDB 应用开发的最佳实践。例如:[插入数据](/develop/dev-guide-insert-data.md),[更新数据](/develop/dev-guide-update-data.md),[删除数据](/develop/dev-guide-delete-data.md),[单表读取](/develop/dev-guide-get-data-from-single-table.md),[事务](/develop/dev-guide-transaction-overview.md),[SQL 性能优化](/develop/dev-guide-optimize-sql-overview.md)等。 - 如果你更倾向于参与课程进行学习,我们也提供专业的 [TiDB 开发者课程](https://cn.pingcap.com/courses-catalog/category/back-end-developer/?utm_source=docs-cn-dev-guide)支持,并在考试后提供相应的[资格认证](https://learn.pingcap.com/learner/certification-center)。 -## 需要帮助吗? +## 需要帮助? -访问我们的 [支持资源](/support.md) 以寻求帮助。 +如果在开发的过程中遇到问题,可以在 [AskTUG](https://asktug.com/?utm_source=docs-cn-dev-guide) 上进行提问,或从 PingCAP 官方或 TiDB 社区[获取支持](/support.md)。 diff --git a/markdown-pages/zh/tidb/release-7.5/develop/dev-guide-sample-application-nextjs.md b/markdown-pages/zh/tidb/release-7.5/develop/dev-guide-sample-application-nextjs.md index 573d2e01..afb34409 100644 --- a/markdown-pages/zh/tidb/release-7.5/develop/dev-guide-sample-application-nextjs.md +++ b/markdown-pages/zh/tidb/release-7.5/develop/dev-guide-sample-application-nextjs.md @@ -1,19 +1,19 @@ --- -title: 在 Next.js 中使用 mysql2 连接 TiDB -summary: 本文介绍了如何在 Next.js 中使用 TiDB 和 mysql2 构建一个 CRUD 应用程序,并提供了一个简单的代码示例。 +title: 在 Next.js 中使用 mysql2 连接到 TiDB +summary: 本文介绍了如何在 Next.js 中使用 TiDB 和 mysql2 构建一个 CRUD 应用程序,并给出了简单示例代码片段。 --- -# 在 Next.js 中使用 mysql2 连接 TiDB +# 在 Next.js 中使用 mysql2 连接到 TiDB -TiDB 是一个兼容 MySQL 的数据库,[node-mysql2](https://github.com/sidorares/node-mysql2) 是一个与 [mysqljs/mysql](https://github.com/mysqljs/mysql) 兼容的面向 Node.js 的 MySQL 驱动,[Next.js](https://nextjs.org/) 是一个 React 框架,用于构建快速、可扩展的现代应用程序。 +TiDB 是一个兼容 MySQL 的数据库,[mysql2](https://github.com/sidorares/node-mysql2) 是当前流行的开源 Node.js Driver 之一。 -在本教程中,您将学习如何在 Next.js 中使用 TiDB 和 mysql2 来完成以下任务: +本文档将展示如何在 Next.js 中使用 TiDB 和 mysql2 来完成以下任务: - 配置你的环境。 - 使用 node-mysql2 驱动连接到 TiDB 集群。 - 构建并运行你的应用程序。你也可以参考[示例代码片段](#示例代码片段),完成基本的 CRUD 操作。 -> **注意** +> **Note** > > 本文档适用于 TiDB Serverless 和本地部署的 TiDB。 @@ -25,7 +25,7 @@ TiDB 是一个兼容 MySQL 的数据库,[node-mysql2](https://github.com/sidor - 在你的机器上安装 [Git](https://git-scm.com/downloads)。 - 准备一个 TiDB 集群。 -**如果你还没有 TiDB 集群,可以按照以下方式创建:** +如果你还没有 TiDB 集群,可以按照以下方式创建: - (推荐方式)参考[创建 TiDB Serverless 集群](/develop/dev-guide-build-cluster-in-cloud.md#第-1-步创建-tidb-serverless-集群),创建你自己的 TiDB Cloud 集群。 - 参考[部署本地测试 TiDB 集群](/quick-start-with-tidb.md#部署本地测试集群)或[部署正式 TiDB 集群](/production-deployment-using-tiup.md),创建本地集群。 @@ -34,38 +34,38 @@ TiDB 是一个兼容 MySQL 的数据库,[node-mysql2](https://github.com/sidor 本小节演示如何运行示例应用程序的代码,并连接到 TiDB。 -> **注意** +> **Note** > ->要获取完整的代码片段和运行说明,请参考 [tidb-nextjs-vercel-quickstart](https://github.com/tidb-samples/tidb-nextjs-vercel-quickstart) GitHub存储库。 +> 完整代码及其运行方式,见代码仓库 [tidb-nextjs-vercel-quickstart](https://github.com/tidb-samples/tidb-nextjs-vercel-quickstart)。 -### 步骤 1:克隆示例应用程序仓库 +### 第 1 步:克隆示例代码仓库到本地 -在终端窗口中运行以下命令来克隆示例代码仓库: +运行以下命令,将示例代码仓库克隆到本地: ```bash git clone git@github.com:tidb-samples/tidb-nextjs-vercel-quickstart.git cd tidb-nextjs-vercel-quickstart ``` -### 步骤 2:安装依赖 +### 第 2 步:安装依赖 -运行以下命令来安装示例应用程序所需的包(包括 mysql2 和 Next.js): +运行以下命令,安装示例代码所需要的依赖(包括 mysql2 和 Next.js): ```bash npm install ``` -### 步骤 3:配置连接信息 +### 第 3 步:配置连接信息 -根据您选择的 TiDB 部署选项,连接到您的 TiDB 集群。 +根据不同的 TiDB 部署方式,使用不同的方法连接到 TiDB 集群。
-1. 导航到 [**Clusters**](https://tidbcloud.com/console/clusters) 页面,然后点击目标集群的名称,进入其概览页面。 +1. 在 TiDB Cloud 的 [**Clusters**](https://tidbcloud.com/console/clusters) 页面中,选择你的 TiDB Serverless 集群,进入集群的 **Overview** 页面。 -2. 在右上角点击 **Connect**。将显示一个连接对话框。 +2. 点击右上角的 **Connect** 按钮,将会弹出连接对话框。 3. 确认对话框中的选项配置和你的运行环境一致。 @@ -76,13 +76,13 @@ npm install > **Note** > - > 在 Node.js 应用程序中,您无需提供 SSL CA 证书,因为在建立 TLS(SSL)连接时,默认情况下 Node.js 使用内置的 [Mozilla CA 证书](https://wiki.mozilla.org/CA/Included_Certificates)。 + > 在 Node.js 应用程序中,你无需提供 SSL CA 证书,因为在建立 TLS (SSL) 连接时,默认情况下 Node.js 使用内置的 [Mozilla CA 证书](https://wiki.mozilla.org/CA/Included_Certificates)。 4. 如果你还没有设置密码,点击 **Generate Password** 按钮生成一个随机的密码。 > **Tip** > - > 如果您之前生成过密码,您可以使用原始密码,或者点击 **Reset Password** 来生成一个新密码。 + > 如果你之前已经生成过密码,可以直接使用原密码,或点击 **Reset Password** 重新生成密码。 5. 运行以下命令,将 `.env.example` 复制并重命名为 `.env`: @@ -96,7 +96,7 @@ npm install Copy-Item ".env.example" -Destination ".env" ``` -6. 编辑 `.env` 文件,按照如下格式设置环境变量 `DATABASE_URL`,将占位符 `{}` 替换为从连接对话框中复制的连接字符串: +6. 编辑 `.env` 文件,按照如下格式设置连接信息,将占位符 `{}` 替换为从连接对话框中复制的参数值: ```bash TIDB_HOST='{gateway-region}.aws.tidbcloud.com' @@ -110,7 +110,7 @@ npm install
-
+
1. 运行以下命令,将 `.env.example` 复制并重命名为 `.env`: @@ -124,7 +124,7 @@ npm install Copy-Item ".env.example" -Destination ".env" ``` -2. 编辑 `.env` 文件,按照如下格式设置环境变量 `DATABASE_URL`,将占位符 `{}` 替换为从连接对话框中复制的连接字符串: +2. 编辑 `.env` 文件,按照如下格式设置连接信息,将占位符 `{}` 替换为你的 TiDB 集群的连接参数值: ```bash TIDB_HOST='{tidb_server_host}' @@ -134,7 +134,7 @@ npm install TIDB_DB_NAME='test' ``` - 如果您在本地运行 TiDB,则默认的主机地址是 `127.0.0.1`,密码为空。 + 如果你在本地运行 TiDB 集群,默认的主机地址是 `127.0.0.1`,密码为空。 3. 保存 `.env` 文件。 @@ -142,17 +142,17 @@ npm install -### 步骤 4:运行示例应用程序 +### 第 4 步:运行代码并查看结果 -1. 运行示例应用程序: +1. 运行以下命令,执行示例代码: ```bash npm run dev ``` -2. 打开您的浏览器并访问 `http://localhost:3000`(请查看您的终端以获取实际的端口号,默认为`3000`)。 +2. 打开浏览器并访问 `http://localhost:3000`(请查看你的终端以获取实际的端口号,默认为`3000`)。 -3. 点击**RUN SQL**以执行示例代码。 +3. 点击 **RUN SQL** 执行示例代码。 4. 在终端中检查输出。如果输出类似于以下内容,则连接成功: @@ -168,13 +168,13 @@ npm install ## 示例代码片段 -您可以参考以下示例代码片段来完成自己的应用程序开发。 +你可参考以下关键代码片段,完成自己的应用开发。 -要获取完整的示例代码和运行方式,请查看 [tidb-nextjs-vercel-quickstart](https://github.com/tidb-samples/tidb-nextjs-vercel-quickstart) 存储库。 +完整代码及其运行方式,见代码仓库 [tidb-nextjs-vercel-quickstart](https://github.com/tidb-samples/tidb-nextjs-vercel-quickstart)。 ### 连接到 TiDB -以下代码使用环境变量中定义的选项建立与 TiDB 的连接: +下面的代码使用环境变量中定义的连接选项来建立与 TiDB 集群的连接。 ```javascript // src/lib/tidb.js @@ -209,29 +209,29 @@ export function getPool() { ### 插入数据 -以下查询创建一个单独的 `Players` 记录并返回一个 `ResultSetHeader` 对象: +下面的查询会创建一条单独的 `Player` 记录,并返回一个 `ResultSetHeader` 对象: ```javascript const [rsh] = await pool.query('INSERT INTO players (coins, goods) VALUES (?, ?);', [100, 100]); console.log(rsh.insertId); ``` -要了解更多信息,请参考 [插入数据](/develop/dev-guide-insert-data.md)。 +更多信息参考[插入数据](/develop/dev-guide-insert-data.md)。 ### 查询数据 -以下查询返回一个 `Players` 记录,其 ID 为 `1`: +下面的查询会返回一条 `Player` 记录,其 ID 为 `1`: ```javascript const [rows] = await pool.query('SELECT id, coins, goods FROM players WHERE id = ?;', [1]); console.log(rows[0]); ``` -要了解更多信息,请参考 [查询数据](/develop/dev-guide-get-data-from-single-table.md)。 +更多信息参考[查询数据](/develop/dev-guide-get-data-from-single-table.md)。 ### 更新数据 -以下查询将 `50` 个硬币和 `50` 个商品添加到 `ID` 为 `1` 的 `Player` 中: +下面的查询会将 ID 为 `1` 的 `Player` 记录的 `coins` 和 `goods` 字段的值分别增加 `50`: ```javascript const [rsh] = await pool.query( @@ -241,32 +241,32 @@ const [rsh] = await pool.query( console.log(rsh.affectedRows); ``` -要了解更多信息,请参考 [更新数据](/develop/dev-guide-update-data.md)。 +更多信息参考[更新数据](/develop/dev-guide-update-data.md)。 ### 删除数据 -以下查询删除一个 `Players` 记录,其 ID 为 `1`: +下面的查询会删除一条 `Player` 记录,其 ID 为 `1`: ```javascript const [rsh] = await pool.query('DELETE FROM players WHERE id = ?;', [1]); console.log(rsh.affectedRows); ``` -要了解更多信息,请参考 [删除数据](/develop/dev-guide-delete-data.md)。 +更多信息参考[删除数据](/develop/dev-guide-delete-data.md)。 ## 注意事项 - 推荐使用[连接池](https://github.com/sidorares/node-mysql2#using-connection-pools)来管理数据库连接,以减少频繁建立和销毁连接所带来的性能开销。 - 为了避免 SQL 注入的风险,推荐使用[预处理语句](https://github.com/sidorares/node-mysql2#using-prepared-statements)执行 SQL。 -- 在不涉及大量复杂 SQL 语句的场景下,推荐使用 ORM 框架 (例如:[Sequelize](https://sequelize.org/)、[TypeORM](https://typeorm.io/) 或 [Prisma](https://www.prisma.io/)) 来提升你的开发效率。 +- 在不涉及大量复杂 SQL 语句的场景下,推荐使用 ORM 框架(例如:[Sequelize](https://sequelize.org/)、[TypeORM](https://typeorm.io/) 或 [Prisma](https://www.prisma.io/))来提升你的开发效率。 ## 下一步 -- 要了解如何使用 ORM 和 Next.js 构建复杂应用程序的更多细节,请参阅我们的 [书店演示](https://github.com/pingcap/tidb-prisma-vercel-demo)。 +- 关于使用 ORM 框架和 Next.js 构建复杂应用程序的更多细节,可以参考 [tidb-prisma-vercel-demo](https://github.com/pingcap/tidb-prisma-vercel-demo)。 - 关于 node-mysql2 的更多使用方法,可以参考 [node-mysql2 的 GitHub 仓库](https://github.com/sidorares/node-mysql2)。 - 你可以继续阅读开发者文档的其它章节来获取更多 TiDB 应用开发的最佳实践。例如:[插入数据](/develop/dev-guide-insert-data.md),[更新数据](/develop/dev-guide-update-data.md),[删除数据](/develop/dev-guide-delete-data.md),[单表读取](/develop/dev-guide-get-data-from-single-table.md),[事务](/develop/dev-guide-transaction-overview.md),[SQL 性能优化](/develop/dev-guide-optimize-sql-overview.md)等。 - 如果你更倾向于参与课程进行学习,我们也提供专业的 [TiDB 开发者课程](https://cn.pingcap.com/courses-catalog/category/back-end-developer/?utm_source=docs-cn-dev-guide)支持,并在考试后提供相应的[资格认证](https://learn.pingcap.com/learner/certification-center)。 -## 需要帮助吗? +## 需要帮助? -访问我们的 [支持资源](/support.md) 以寻求帮助。 +如果在开发的过程中遇到问题,可以在 [AskTUG](https://asktug.com/?utm_source=docs-cn-dev-guide) 上进行提问,或从 PingCAP 官方或 TiDB 社区[获取支持](/support.md)。 diff --git a/markdown-pages/zh/tidb/release-7.5/develop/dev-guide-sample-application-nodejs-sequelize.md b/markdown-pages/zh/tidb/release-7.5/develop/dev-guide-sample-application-nodejs-sequelize.md index 08c08545..54b39f0b 100644 --- a/markdown-pages/zh/tidb/release-7.5/develop/dev-guide-sample-application-nodejs-sequelize.md +++ b/markdown-pages/zh/tidb/release-7.5/develop/dev-guide-sample-application-nodejs-sequelize.md @@ -13,7 +13,7 @@ TiDB 是一个兼容 MySQL 的数据库。[Sequelize](https://sequelize.org/) - 使用 Sequelize 连接到 TiDB 集群。 - 构建并运行你的应用程序。你也可以参考[示例代码片段](#示例代码片段),完成基本的 CRUD 操作。 -> **注意** +> **Note** > > 本文档适用于 TiDB Serverless、TiDB Dedicated 和本地部署的 TiDB。 @@ -25,47 +25,47 @@ TiDB 是一个兼容 MySQL 的数据库。[Sequelize](https://sequelize.org/) - 在你的机器上安装 [Git](https://git-scm.com/downloads)。 - 准备一个 TiDB 集群。 -**如果您没有 TiDB 集群,可以按照以下步骤创建一个:** +如果你还没有 TiDB 集群,可以按照以下方式创建: -- (推荐)请按照 [创建 TiDB Serverless 集群](/develop/dev-guide-build-cluster-in-cloud.md) 的指引,创建您自己的 TiDB Cloud 集群。 -- 按照 [部署本地测试 TiDB 集群](/quick-start-with-tidb.md#部署本地测试集群) 或 [部署生产 TiDB 集群](/production-deployment-using-tiup.md) 的指引,创建一个本地集群。 +- (推荐方式)参考[创建 TiDB Serverless 集群](/develop/dev-guide-build-cluster-in-cloud.md#第-1-步创建-tidb-serverless-集群),创建你自己的 TiDB Cloud 集群。 +- 参考[部署本地测试 TiDB 集群](/quick-start-with-tidb.md#部署本地测试集群)或[部署正式 TiDB 集群](/production-deployment-using-tiup.md),创建本地集群。 -## 运行示例应用程序并连接到 TiDB +## 运行代码并连接到 TiDB -本节演示如何运行示例应用程序代码并连接到 TiDB。 +本小节演示如何运行示例应用程序的代码,并连接到 TiDB。 -> **注意** +> **Note** > -> 完整的代码片段和运行说明,请参考 [tidb-samples/tidb-nodejs-sequelize-quickstart](https://github.com/tidb-samples/tidb-nodejs-sequelize-quickstart) GitHub 仓库。 +> 完整代码及其运行方式,见代码仓库 [tidb-samples/tidb-nodejs-sequelize-quickstart](https://github.com/tidb-samples/tidb-nodejs-sequelize-quickstart)。 -### 步骤 1:克隆示例应用程序仓库 +### 第 1 步:克隆示例代码仓库到本地 -在终端窗口中运行以下命令来克隆示例代码仓库: +运行以下命令,将示例代码仓库克隆到本地: ```bash git clone git@github.com:tidb-samples/tidb-nodejs-sequelize-quickstart.git cd tidb-nodejs-sequelize-quickstart ``` -### 步骤 2:安装依赖 +### 第 2 步:安装依赖 -运行以下命令来安装示例应用程序所需的包(包括 sequelize): +运行以下命令,安装示例代码所需要的依赖(包括 sequelize): ```bash npm install ``` -### 步骤 3:配置连接信息 +### 第 3 步:配置连接信息 -根据您选择的 TiDB 部署选项,连接到您的 TiDB 集群。 +根据不同的 TiDB 部署方式,使用不同的方法连接到 TiDB 集群。
-1. 导航到 [**Clusters**](https://tidbcloud.com/console/clusters) 页面,然后点击目标集群的名称,进入其概览页面。 +1. 在 TiDB Cloud 的 [**Clusters**](https://tidbcloud.com/console/clusters) 页面中,选择你的 TiDB Serverless 集群,进入集群的 **Overview** 页面。 -2. 在右上角点击 **Connect**。将显示一个连接对话框。 +2. 点击右上角的 **Connect** 按钮,将会弹出连接对话框。 3. 确认对话框中的选项配置和你的运行环境一致。 @@ -76,13 +76,13 @@ npm install > **Note** > - > 在 Node.js 应用程序中,您无需提供 SSL CA 证书,因为在建立 TLS(SSL)连接时,默认情况下 Node.js 使用内置的 [Mozilla CA 证书](https://wiki.mozilla.org/CA/Included_Certificates)。 + > 在 Node.js 应用程序中,你无需提供 SSL CA 证书,因为在建立 TLS (SSL) 连接时,默认情况下 Node.js 使用内置的 [Mozilla CA 证书](https://wiki.mozilla.org/CA/Included_Certificates)。 4. 如果你还没有设置密码,点击 **Generate Password** 按钮生成一个随机的密码。 > **Tip** > - > 如果您之前生成过密码,您可以使用原始密码,或者点击 **Reset Password** 来生成一个新密码。 + > 如果你之前已经生成过密码,可以直接使用原密码,或点击 **Reset Password** 重新生成密码。 5. 运行以下命令,将 `.env.example` 复制并重命名为 `.env`: @@ -90,7 +90,7 @@ npm install cp .env.example .env ``` -6. 编辑 `.env` 文件,按照如下格式设置环境变量 `DATABASE_URL`,将占位符 `{}` 替换为从连接对话框中复制的连接字符串: +6. 编辑 `.env` 文件,按照如下格式设置连接信息,将占位符 `{}` 替换为从连接对话框中复制的参数值: ```dotenv TIDB_HOST='{host}' @@ -107,13 +107,11 @@ npm install
-1. 导航到 [**Clusters**](https://tidbcloud.com/console/clusters) 页面,然后点击目标集群的名称,进入其概览页面。 +1. 在 TiDB Cloud 的 [**Clusters**](https://tidbcloud.com/console/clusters) 页面中,选择你的 TiDB Dedicated 集群,进入集群的 **Overview** 页面。 +2. 点击右上角的 **Connect** 按钮,将会出现连接对话框。 +3. 在对话框中点击 **Allow Access from Anywhere**,然后点击 **Download TiDB cluster CA** 下载 TiDB Cloud 提供的 CA 证书。 -2. 在右上角点击 **Connect**。将显示一个连接对话框。 - -3. 点击 **Allow Access from Anywhere**,然后点击 **Download TiDB cluster CA** 来下载 CA 证书。 - - 要了解更多关于如何获取连接字符串的详细信息,请参考 [TiDB Dedicated 标准连接](https://docs.pingcap.com/tidbcloud/connect-via-standard-connection)。 + 更多配置细节,可参考 [TiDB Dedicated 标准连接教程(英文)](https://docs.pingcap.com/tidbcloud/connect-via-standard-connection)。 4. 运行以下命令,将 `.env.example` 复制并重命名为 `.env`: @@ -121,7 +119,7 @@ npm install cp .env.example .env ``` -5. 编辑 `.env` 文件,按照如下格式设置环境变量 `DATABASE_URL`,将占位符 `{}` 替换为从连接对话框中复制的连接字符串: +5. 编辑 `.env` 文件,按照如下格式设置连接信息,将占位符 `{}` 替换为从连接对话框中复制的参数值: ```shell TIDB_HOST='{host}' @@ -137,7 +135,7 @@ npm install
-
+
1. 运行以下命令,将 `.env.example` 复制并重命名为 `.env`: @@ -145,7 +143,7 @@ npm install cp .env.example .env ``` -2. 编辑 `.env` 文件,按照如下格式设置环境变量 `DATABASE_URL`,将占位符 `{}` 替换为从连接对话框中复制的连接字符串: +2. 编辑 `.env` 文件,按照如下格式设置连接信息,将占位符 `{}` 替换为你的 TiDB 集群的连接参数值: ```shell TIDB_HOST='{host}' @@ -155,7 +153,7 @@ npm install TIDB_DB_NAME='test' ``` - 如果您在本地运行 TiDB,则默认的主机地址是 `127.0.0.1`,密码为空。 + 如果你在本地运行 TiDB 集群,默认的主机地址是 `127.0.0.1`,密码为空。 3. 保存 `.env` 文件。 @@ -163,16 +161,16 @@ npm install -### 步骤 4:运行示例应用程序 +### 第 4 步:运行代码并查看结果 -运行以下命令来执行示例代码: +运行以下命令,执行示例代码: ```shell npm start ```
-**预期输出(部分):** +**预期输出结果(部分):** ```shell INFO (app/10117): Getting sequelize instance... @@ -196,7 +194,7 @@ Executing (default): DELETE FROM `players` WHERE `id` = 6 ### 连接到 TiDB -以下代码使用环境变量中定义的选项建立与 TiDB 的连接: +下面的代码使用环境变量中定义的连接选项来建立与 TiDB 集群的连接。 ```typescript // src/lib/tidb.ts @@ -242,7 +240,7 @@ export async function getSequelize() { ### 插入数据 -以下查询创建一个单独的 `Players` 记录并返回一个 `Players` 对象: +下面的查询会创建一条单独的 `Players` 记录,并返回一个 `Players` 对象: ```typescript logger.info('Creating a new player...'); @@ -255,11 +253,11 @@ logger.info('Created a new player.'); logger.info(newPlayer.toJSON()); ``` -要了解更多信息,请参考 [插入数据](/develop/dev-guide-insert-data.md)。 +更多信息参考[插入数据](/develop/dev-guide-insert-data.md)。 ### 查询数据 -以下查询返回一个 `Players` 记录,其金币数量大于 `300`: +下面的查询会返回一条 `Players` 记录,其金币数量大于 `300`: ```typescript logger.info('Reading all players with coins > 300...'); @@ -274,11 +272,11 @@ logger.info('Read all players with coins > 300.'); logger.info(allPlayersWithCoinsGreaterThan300.map((p) => p.toJSON())); ``` -要了解更多信息,请参考 [查询数据](/develop/dev-guide-get-data-from-single-table.md)。 +更多信息参考[查询数据](/develop/dev-guide-get-data-from-single-table.md)。 ### 更新数据 -以下查询将 `ID` 为 `6` 的 `Players` 的金币数量和物品数量设置为 `700`,这个记录是在 [插入数据](#插入数据) 部分创建的: +下面的查询会将 ID 为 `6` 的 `Player` 的金币数量和物品数量设置为 `700`,这个记录是在[插入数据](#插入数据)部分创建的: ```typescript logger.info('Updating the new player...'); @@ -287,11 +285,11 @@ logger.info('Updated the new player.'); logger.info(newPlayer.toJSON()); ``` -要了解更多信息,请参考 [更新数据](/develop/dev-guide-update-data.md)。 +更多信息参考[更新数据](/develop/dev-guide-update-data.md)。 ### 删除数据 -以下查询删除了在 [插入数据](#插入数据) 部分创建的 `Player` 记录,其 `ID` 为 `6`: +下面的查询会删除在[插入数据](#插入数据)部分创建的 `Player` 记录,其 ID 为 `6`: ```typescript logger.info('Deleting the new player...'); @@ -301,14 +299,14 @@ logger.info('Deleted the new player.'); logger.info(deletedNewPlayer?.toJSON()); ``` -要了解更多信息,请参考 [删除数据](/develop/dev-guide-delete-data.md)。 +更多信息参考[删除数据](/develop/dev-guide-delete-data.md)。 ## 下一步 -- 从 [Sequelize的文档](https://sequelize.org/) 中了解更多关于ORM框架Sequelize驱动程序的用法。 +- 关于 Sequelize 的更多使用方法,可以参考 [Sequelize 的官方文档](https://sequelize.org/)。 - 你可以继续阅读开发者文档的其它章节来获取更多 TiDB 应用开发的最佳实践。例如:[插入数据](/develop/dev-guide-insert-data.md),[更新数据](/develop/dev-guide-update-data.md),[删除数据](/develop/dev-guide-delete-data.md),[单表读取](/develop/dev-guide-get-data-from-single-table.md),[事务](/develop/dev-guide-transaction-overview.md),[SQL 性能优化](/develop/dev-guide-optimize-sql-overview.md)等。 - 如果你更倾向于参与课程进行学习,我们也提供专业的 [TiDB 开发者课程](https://cn.pingcap.com/courses-catalog/category/back-end-developer/?utm_source=docs-cn-dev-guide)支持,并在考试后提供相应的[资格认证](https://learn.pingcap.com/learner/certification-center)。 -## 需要帮助吗? +## 需要帮助? -访问我们的 [支持资源](/support.md) 以寻求帮助。 +如果在开发的过程中遇到问题,可以在 [AskTUG](https://asktug.com/?utm_source=docs-cn-dev-guide) 上进行提问,或从 PingCAP 官方或 TiDB 社区[获取支持](/support.md)。