介绍
Deno 是一个现代化的 JavaScript 和 TypeScript 运行时环境,它具有安全性、可靠性和性能等优点。在本文中,我们将使用 Deno 构建一个 RESTful API,实现 CRUD 操作。RESTful API 是现代 Web 应用程序的核心,它提供了一种标准化的方式来访问和操作数据。本文旨在向读者展示如何使用 Deno 和一些常用的库来创建 RESTful API。
环境配置
在开始之前,我们需要安装 Deno 运行时环境。你可以访问 Deno 的官方网站 https://deno.land/,按照指示安装 Deno。安装完成后,你可以在终端中输入以下命令来检查是否安装成功:
deno --version
我们还需要安装一些常用的库,这些库可以帮助我们更轻松地构建 RESTful API。在本文中,我们将使用以下库:
- oak:一个基于中间件的 Web 框架,类似于 Express。
- deno-postgres:一个 PostgreSQL 数据库驱动程序。
- dotenv:一个用于加载环境变量的库。
你可以使用以下命令来安装这些库:
deno install --allow-read --allow-net --unstable https://deno.land/x/oak/mod.ts deno install --allow-read --allow-net --unstable https://deno.land/x/deno_postgres/mod.ts deno install --allow-read --allow-env --unstable https://deno.land/x/dotenv/mod.ts
实现 CRUD 操作
创建数据库
首先,我们需要创建一个 PostgreSQL 数据库。你可以使用以下命令来创建一个名为 deno_api
的数据库:
CREATE DATABASE deno_api;
接下来,我们需要创建一个名为 users
的表,用于存储用户数据。你可以使用以下 SQL 语句来创建表:
CREATE TABLE users ( id SERIAL PRIMARY KEY, name TEXT, email TEXT UNIQUE NOT NULL, password TEXT );
连接数据库
在我们的应用程序中,我们需要连接到 PostgreSQL 数据库。为了保护我们的数据库凭据,我们将使用 dotenv 库来加载环境变量。在项目根目录下创建一个名为 .env
的文件,并添加以下内容:
DB_HOST=localhost DB_PORT=5432 DB_NAME=deno_api DB_USER=your_username DB_PASSWORD=your_password
接下来,我们将使用 deno-postgres 库来连接到数据库。在 app.ts
文件中添加以下内容:
-- -------------------- ---- ------- ------ - ------ - ---- -------------------------------------- ------ - ------ - ---- ------------------------------------ ----- ------ - --- -------- ----- ----------------- --------- --------------------- --------- ----------------- --------- ----------------- ----- --------------------------- --- ----- -----------------
创建路由
我们将使用 oak 框架来创建 RESTful API 的路由。在 app.ts
文件中添加以下内容:
-- -------------------- ---- ------- ------ - ----------- - ---- --------------------------------- ----- --- - --- -------------- ------------- ----- ----- -- - ----- ------- ----- -- - -------------------------------------------- ---------------------------------- ------------------ - -------- --- ------------- ----- ----- -- - ----- ----- - ----------- ----- ------- ----- -- - ---------- - ------ ------------------------------------------- ----------- --- ------------- ----- -- - ----------------- - ------ -------- --- ----- ------------ ----- ---- ---
在这个例子中,我们创建了一个名为 app
的应用程序,使用 app.use()
方法添加了三个中间件。第一个中间件用于记录请求的方法、URL 和响应时间。第二个中间件用于计算响应时间。第三个中间件返回一个简单的“Hello World!”消息。
实现 CRUD 操作
我们将使用以下路由来实现 CRUD 操作:
- GET
/users
:获取所有用户。 - GET
/users/:id
:获取指定 ID 的用户。 - POST
/users
:创建一个新用户。 - PUT
/users/:id
:更新指定 ID 的用户。 - DELETE
/users/:id
:删除指定 ID 的用户。
在 app.ts
文件中添加以下路由:
-- -------------------- ---- ------- ------ - ------ - ---- --------------------------------- ----- ------ - --- --------- -------------------- ----- ----- -- - ----- ------ - ----- -------------------- - ---- -------- ----------------- - ----------------------- --- ------------------------ ----- ----- -- - ----- ------ - ----- ------------- ------- - ---- ----- ----- -- - ---- -------------- -- -- ------------------- --- -- - ------------------- - ---- ----------------- - - -------- ----- --- ------ -- ------- - ----------------- - -------------------------- --- --------------------- ----- ----- -- - ----- - ----- ------ -------- - - ----- ------------------------- ----- ------ - ----- ------------- ------- ---- ----------- ------ --------- ---------- --- --- --------- --- ----- ------ --------- -- ------------------- - ---- ----------------- - -------------------------- --- ------------------------ ----- ----- -- - ----- -- - -------------- ----- - ----- ------ -------- - - ----- ------------------------- ----- ------ - ----- ------------- ------- ----- --- ---- - --- ----- - --- -------- - -- ----- -- - -- --------- --- ----- ------ --------- --- -- -- ------------------- --- -- - ------------------- - ---- ----------------- - - -------- ----- --- ------ -- ------- - ----------------- - -------------------------- --- --------------------------- ----- ----- -- - ----- ------ - ----- ------------- ------- ---- ----- ----- -- - -- --------- --- -------------- -- -- ------------------- --- -- - ------------------- - ---- ----------------- - - -------- ----- --- ------ -- ------- - ----------------- - -------------------------- --- ------------------------- ---------------------------------
在这个例子中,我们使用 Router
类来创建路由。我们实现了五个路由,每个路由都对应一个 CRUD 操作。我们使用 client.query()
方法来执行 SQL 语句,从而实现对数据库的操作。
运行应用程序
现在,我们已经实现了一个简单的 RESTful API,可以进行 CRUD 操作。要运行应用程序,请在终端中输入以下命令:
deno run --allow-read --allow-net --unstable app.ts
这将启动应用程序,并在本地计算机的 8000 端口上运行。你可以在浏览器中访问 http://localhost:8000/users
来获取所有用户的列表。
结论
在本文中,我们使用 Deno 和一些常用的库来创建 RESTful API,实现 CRUD 操作。我们展示了如何连接到 PostgreSQL 数据库、创建路由和实现 CRUD 操作。这些技术可以帮助你更轻松地构建现代 Web 应用程序,提高开发效率和性能。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/67615a00856ee0c1d4f7a2a1