随着移动互联网时代的到来,越来越多的公司需要建立自己的 RESTful API。RESTful API 是一种基于 REST(Representational State Transfer)必须符合一些规范的网络应用程序接口。它提供了一种简单、清晰、快速且可扩展的方式来实现不同应用程序之间的互操作。
在本文中,我们将探讨如何使用 Fastify 和 Postgres 在 Node.js 中构建 RESTful API,以便您可以构建一个完整的 Web 应用程序。
准备工作
在开始构建 RESTful API 之前,您需要确保已经安装了以下软件:
- Node.js:可以从官方网站https://nodejs.org/en/download/ 下载和安装。
- Fastify:Fastify 是一个高效、低开销且高度可定制的 Web 框架。可以通过运行
npm install fastify --save
安装。 - Postgres:Postgres 是一个开源的对象关系型数据库。它提供了高度可靠性、可扩展性和安全性,是构建 Web 应用程序的最佳选择。可以通过运行
brew install postgresql
(Mac) 或sudo apt-get install postgresql
(Linux) 安装。
设置数据库
在开始编写代码之前,您需要设置一个数据库。首先,启动 Postgres 进程,运行下面的命令:
pg_ctl -D /usr/local/var/postgres start
接下来,您需要新建一个数据库和一个表。在终端中运行以下命令:
-- -------------------- ---- ------- ---- ------ -------- ------ ------ ----- ----- - -- ------ ------- ---- ---- ------- ---- --- ----- ----- ------- ---- --- ---- ------- -------- ------- ---- --- ---- --
这些命令将在 Postgres 数据库中创建一个名为“users”的新数据库和一个名为“users”的表。
创建 RESTful API
现在,开始创建 RESTful API。在项目文件夹中创建一个新文件夹,命名为“src”。在这个文件夹中,创建一个新文件,名为“app.js”。
在文件中添加以下代码:
-- -------------------- ---- ------- ----- ------- - -------------------- ------- ---- -- ----- -- - ------------- -- -------- -- ----- -------- - - ----- ----------- --------- -------- --------- --- ----- ------------ ----- ----- - -- --- -------- --- ----- ---- - --- ----------------- -- ------ --------------------- ----- --------- ------ -- - ----- ------ - ----- -------------- --- - ----- ------ - ----- -------------------- - ---- ------- ----------------------- - ------- - ---------------- - -- -- ----- ---------------------- ----- --------- ------ -- - ----- - ----- ------ -------- - - ------------ ----- ------ - ----- -------------- --- - ----- ------ - ----- ------------- ------- ---- ----- ------ ------ --------- ------ ---- --- --- --------- ---- ------ ------ --------- - ------------ --- ----------------- -- - ------- - ---------------- - -- -- ------ ------------------------- ----- --------- ------ -- - ----- - -- - - -------------- ----- ------ - ----- -------------- --- - ----- ------ - ----- -------------------- - ---- ----- ----- -- - ---- ----- -- ----------------- - -------------------------- - ---- - ------------------------ -------- ----- --- ------ -- - - ------- - ---------------- - -- -- ---- ------------------------- ----- --------- ------ -- - ----- - -- - - -------------- ----- - ----- ------ -------- - - ------------ ----- ------ - ----- -------------- --- - ----- ------ - ----- ------------- ------- ----- --- -------- --------- ----------- ----- ----- --------- ---- ------ ------ --------- --- - -- ----------------- - ------------ --- ----------------- -- - ---- - ------------------------ -------- ----- --- ------ -- - - ------- - ---------------- - -- -- ---- ---------------------------- ----- --------- ------ -- - ----- - -- - - -------------- ----- ------ - ----- -------------- --- - ----- ------ - ----- -------------------- ---- ----- ----- ----- --------- ---- ----- -- ----------------- - ------------ --- ----------------- -- - ---- - ------------------------ -------- ----- --- ------ -- - - ------- - ---------------- - -- -- ----- ----- ----- - ----- -- -- - --- - ----- -------------------- - ----- ----- - ---------------------- --------------- - - -------
这些代码会创建一个 Fastify 服务器,并使用 pg
库连接到数据库。它提供了五个路由,可以处理 CRUD 操作,包括获取所有用户、创建新用户、获取单个用户、更新用户和删除用户。
测试 API
现在,启动服务器并测试 API。使用终端窗口,进入项目文件夹并运行以下命令:
node src/app.js
在另一个终端窗口或使用 Postman 应用程序,进行以下测试。
- 获取所有用户:
GET http://localhost:3000/users
您应该会看到所有用户的 JSON 格式数据。
- 创建新用户:
POST http://localhost:3000/users Content-Type: application/json { "name": "test", "email": "test@test.com", "password": "test" }
您应该会看到一个新用户的 id 号。
- 获取单个用户:
GET http://localhost:3000/users/1
您应该会看到特定用户的 JSON 格式数据。
- 更新用户:
PUT http://localhost:3000/users/1 Content-Type: application/json { "name": "test1", "email": "test1@test.com", "password": "test1" }
您应该会看到更新的用户的 id 号。
- 删除用户:
DELETE http://localhost:3000/users/1
您应该会看到被删除用户的 id 号。
结论
本文介绍了如何使用 Fastify 和 Postgres 构建 RESTful API,包括设置数据库、创建服务器和测试 API。希望本文可帮助您了解如何使用 Node.js 构建 Web 应用程序。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/674ab837a1ce006354a0c1e9