简介
Deno 是一个现代化的 JavaScript 和 TypeScript 运行环境,由 Node.js 的创始人 Ryan Dahl 开发。相比于 Node.js,Deno 更加安全、易用、可靠和高效。MySQL 是一个流行的关系型数据库。在本文中,我们将使用 Deno 和 MySQL 来构建一个 REST API,以实现数据的增删改查操作。
准备工作
在开始之前,我们需要安装 Deno 和 MySQL。Deno 的安装可以参考官方文档:https://deno.land/manual/getting_started/installation。而 MySQL 的安装可以参考官方文档:https://dev.mysql.com/doc/mysql-installation-excerpt/5.7/en/。
我们还需要安装一些 Deno 的模块,包括 oak
、mysql
和 dotenv
。oak
是一个基于中间件的 Web 框架,mysql
是一个 MySQL 客户端,而 dotenv
则是一个用于加载环境变量的模块。
可以使用以下命令来安装这些模块:
deno install --allow-read --allow-net --allow-env https://deno.land/x/dotenv/mod.ts deno install --allow-read --allow-net https://deno.land/x/mysql/mod.ts deno install --allow-read --allow-net https://deno.land/x/oak/mod.ts
创建数据库
在开始编写代码之前,我们需要创建一个名为 test
的数据库,并在其中创建一个名为 users
的表。可以使用以下 SQL 语句来创建这个表:
CREATE TABLE `users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, `email` varchar(255) NOT NULL, `password` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
编写代码
我们将编写一个 REST API,包含以下四个路由:
GET /users
:获取所有用户GET /users/:id
:根据 ID 获取用户POST /users
:创建用户PUT /users/:id
:根据 ID 更新用户DELETE /users/:id
:根据 ID 删除用户
在开始编写代码之前,我们先创建一个名为 config.ts
的文件,用于加载环境变量和创建 MySQL 连接池:
-- -------------------- ---- ------- ------ - ------ - ---- ----------------------------------- ------ - ------ - ---- ------------------------------------ ----- - -------- -------- -------- ------------ ------- - - --------- ------ ----- ---- - ----- --- ------------------ --------- -------- ----- --------- --------- -------- --------- ------------ --- -------- ---
接下来,我们创建一个名为 users.ts
的文件,用于定义用户模型和路由处理函数:
-- -------------------- ---- ------- ------ - ------- ------- - ---- --------------------------------- ------ - ---- - ---- -------------- --------- ---- - --- ------- ----- ------- ------ ------- --------- ------- - ------ ----- ------ - --- --------- -------------------- ----- ----- -------- -- - ----- ------ - ----- ------------------ - ---- -------- ----- ------ ------ - --------------------- ---- -- -- --- ------- ----- --------- ------ ---------- --------- ------------- ---- ----------------- - ------ --- ------------------------ ----- ----- -------- -- - ----- -- - -------------- ----- ------ - ----- ------------------ - ---- ----- ----- -- - --- ------ -- ------------------- --- -- - ------------------- - ---- ----------------- - - -------- ----- --- ------ -- - ---- - ----- ----- ---- - - --- ------------------ ----- -------------------- ------ --------------------- --------- ------------------------ -- ----------------- - ----- - --- --------------------- ----- ----- -------- -- - ----- - ----- ------ -------- - - ----- ------------------------- ----- ------ - ----- ----------- ------- ---- ----- ------ ------ --------- ------ --- -- ---- ------ ------ ---------- -- ----- ----- ---- - - --- -------------------- ----- ------ --------- -- ------------------- - ---- ----------------- - ----- --- ------------------------ ----- ----- -------- -- - ----- -- - -------------- ----- - ----- ------ -------- - - ----- ------------------------- ----- ------ - ----- ----------- ------- ----- --- ---- - -- ----- - -- -------- - - ----- -- - --- ------ ------ --------- ---- -- -- -------------------- --- -- - ------------------- - ---- ----------------- - - -------- ----- --- ------ -- - ---- - ----- ----- ---- - - --- ---- ----- ------ --------- -- ----------------- - ----- - --- --------------------------- ----- ----- -------- -- - ----- -- - -------------- ----- ------ - ----- ------------------ ---- ----- ----- -- - --- ------ -- -------------------- --- -- - ------------------- - ---- ----------------- - - -------- ----- --- ------ -- - ---- - ------------------- - ---- - ---
最后,我们创建一个名为 app.ts
的文件,用于启动服务器:
-- -------------------- ---- ------- ------ - ----------- - ---- --------------------------------- ------ - ------ - ---- ------------------------------------ ------ - ------ - ---- ------------- ----- - ---- - - --------- ----- --- - --- -------------- ------------------------- --------------------------------- ---------------------- -- ---- ------------- ----- ------------ ----- ----- ---
运行代码
运行以下命令来启动服务器:
deno run --allow-read --allow-net --allow-env app.ts
然后,我们可以使用 Postman 或其他工具来测试 API,例如:
- GET http://localhost:8000/users
- GET http://localhost:8000/users/1
- POST http://localhost:8000/users
- Body: {"name": "Alice", "email": "alice@example.com", "password": "password"}
- PUT http://localhost:8000/users/1
- Body: {"name": "Bob", "email": "bob@example.com", "password": "password"}
- DELETE http://localhost:8000/users/1
总结
本文介绍了如何使用 Deno 和 MySQL 来构建一个 REST API,以实现数据的增删改查操作。我们使用了 Deno 的模块和 MySQL 客户端来简化开发,并使用了基于中间件的 Web 框架 oak
来处理路由。这个示例代码可以作为学习 Deno 和 MySQL 开发的指导,也可以作为实际项目的基础。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65703a08d2f5e1655d8f19bd