RESTful API 是现代 Web 应用程序开发中不可缺少的部分。Node.js 和 Express 是构建 RESTful API 的强大工具,让前端开发更加轻松。在本指南中,我们将详细介绍如何使用 Node.js 和 Express 创建 RESTful API,并提供示例代码。
基本概念
在开始介绍如何创建 RESTful API 之前,我们需要先了解一些基本概念。
REST
REST(Representational State Transfer)是一种 Web 应用程序架构风格,它基于 HTTP 协议。RESTful API 是基于 REST 架构风格的 API,它可以使用 HTTP 请求实现对资源的增删改查操作。
HTTP 请求方法
HTTP(Hypertext Transfer Protocol)是用于 Web 通信的协议,其中有多种请求方法。常用的请求方法有:
- GET:获取资源
- POST:创建资源
- PUT:更新资源
- DELETE:删除资源
HTTP 状态码
HTTP 协议的响应会包括一个状态码,表示服务器对请求的处理结果。常见的状态码有:
- 200 OK:请求成功
- 201 Created:资源创建成功
- 400 Bad Request:请求有误
- 404 Not Found:资源不存在
- 500 Internal Server Error:服务器错误
使用 Node.js 和 Express 创建 RESTful API
现在,我们可以开始介绍如何使用 Node.js 和 Express 创建 RESTful API。
准备工作
在开始创建 RESTful API 之前,需要确保已经安装了 Node.js 和 Express。如果没有安装,可以前往官方网站下载并安装。
创建一个新项目,在项目目录下创建一个新的文件夹 routes
,用于存储路由相关的代码。
然后,在项目根目录下创建一个新文件 index.js
,用于启动应用程序。
创建路由
在 routes
文件夹下创建一个名为 api.js
的文件,用于存储 RESTful API 相关的路由。在 api.js
中,可以按照以下方式创建路由:
// javascriptcn.com 代码示例 const express = require('express'); const router = express.Router(); // 获取所有资源 router.get('/', (req, res) => { // 实现获取所有资源的代码 }); // 获取指定 ID 的资源 router.get('/:id', (req, res) => { // 实现获取指定 ID 的资源的代码 }); // 创建资源 router.post('/', (req, res) => { // 实现创建资源的代码 }); // 更新指定 ID 的资源 router.put('/:id', (req, res) => { // 实现更新指定 ID 的资源的代码 }); // 删除指定 ID 的资源 router.delete('/:id', (req, res) => { // 实现删除指定 ID 的资源的代码 }); module.exports = router;
在上面的代码中,我们使用 express.Router()
创建一个新的路由。接下来,分别创建了获取所有资源、获取指定 ID 的资源、创建资源、更新指定 ID 的资源和删除指定 ID 的资源的路由。
实现路由逻辑
创建完路由之后,需要实现它们的逻辑。以下是一些示例代码:
// javascriptcn.com 代码示例 const express = require('express'); const router = express.Router(); // 假设我们有一个数组存储资源 const resources = [ { id: 1, name: 'resource1' }, { id: 2, name: 'resource2' }, { id: 3, name: 'resource3' } ]; // 获取所有资源 router.get('/', (req, res) => { res.send(resources); }); // 获取指定 ID 的资源 router.get('/:id', (req, res) => { const resource = resources.find(r => r.id === parseInt(req.params.id)); if (!resource) return res.status(404).send('资源不存在'); res.send(resource); }); // 创建资源 router.post('/', (req, res) => { const resource = { id: resources.length + 1, name: req.body.name }; resources.push(resource); res.status(201).send(resource); }); // 更新指定 ID 的资源 router.put('/:id', (req, res) => { const resource = resources.find(r => r.id === parseInt(req.params.id)); if (!resource) return res.status(404).send('资源不存在'); resource.name = req.body.name; res.send(resource); }); // 删除指定 ID 的资源 router.delete('/:id', (req, res) => { const resource = resources.find(r => r.id === parseInt(req.params.id)); if (!resource) return res.status(404).send('资源不存在'); const index = resources.indexOf(resource); resources.splice(index, 1); res.send(resource); }); module.exports = router;
在上面的代码中,我们假设我们有一个数组 resources
存储了资源。在获取所有资源和获取指定 ID 的资源的路由中,我们可以使用 res.send()
将返回的 JSON 数据发送给客户端。如果资源不存在,我们可以使用 res.status()
和 res.send()
发送合适的 HTTP 响应。
在创建和更新资源的路由中,我们从请求体中读取数据,并将新的资源添加到数组中或更新现有资源。
最后,在删除指定 ID 的资源的路由中,我们可以根据 ID 在数组中查找资源,然后使用 Array.prototype.splice()
删除它。
启动应用程序
完成上述步骤后,我们需要在 index.js
中启动应用程序并将路由添加到应用程序中。以下是一个示例代码:
// javascriptcn.com 代码示例 const express = require('express'); const app = express(); const apiRouter = require('./routes/api'); app.use(express.json()); app.use('/api', apiRouter); const port = process.env.PORT || 3000; app.listen(port, () => console.log(`Listening on port ${port}`));
在上面的代码中,我们首先使用 const app = express()
创建一个新的应用程序。然后,使用 express.json()
中间件将请求体解析为 JSON。
接下来,我们使用 app.use()
将 /api
路径映射到 apiRouter
中间件。最后,使用 app.listen()
启动应用程序并将其绑定到指定的端口。
测试 API
现在,我们已经完成了创建 RESTful API 的所有步骤。我们可以使用 Postman、curl 或其他工具测试 API。
例如,使用 GET
请求访问 http://localhost:3000/api
可以获取所有资源。使用 POST
请求访问 http://localhost:3000/api
可以创建一个新的资源。使用 PUT
请求访问 http://localhost:3000/api/:id
可以更新指定 ID 的资源。使用 DELETE
请求访问 http://localhost:3000/api/:id
可以删除指定 ID 的资源。
总结
在本指南中,我们介绍了使用 Node.js 和 Express 创建 RESTful API 的基本概念和步骤。我们了解了 REST、HTTP 请求方法和状态码。然后,我们按照步骤创建了路由、实现了路由逻辑,并在应用程序中启动了路由。最后,我们测试了 API。这些步骤将帮助您创建稳健的 Web 应用程序并提供丰富的 API。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/654731647d4982a6eb18fffe