前言
RESTful API 是一种基于 HTTP 协议的 API 设计风格,它通过 URL 和 HTTP 方法来表示资源和操作,具有简单、灵活、可扩展等特点,越来越受到开发者的喜爱。而 Express.js 是一种 Node.js 的 Web 开发框架,它提供了一个简洁、灵活的路由系统,可以方便地搭建 RESTful API。
本文将介绍如何使用 Express.js 搭建一个简单的 RESTful API,并包含示例代码和详细的说明,帮助读者了解 RESTful API 的基本概念和 Express.js 的基本用法,同时也为开发者提供了一个实践的参考。
准备工作
在开始之前,我们需要安装 Node.js 和 Express.js,可以通过以下命令进行安装:
# 安装 Node.js sudo apt-get install nodejs # 安装 npm sudo apt-get install npm # 安装 Express.js npm install express --save
搭建 RESTful API
初始化项目
首先,我们需要创建一个新的 Node.js 项目,并安装 Express.js:
# 创建新项目 mkdir my-api cd my-api npm init -y # 安装 Express.js npm install express --save
编写代码
在项目目录下创建一个 index.js 文件,并编写以下代码:
// javascriptcn.com 代码示例 const express = require('express') const app = express() // 设置路由 app.get('/', (req, res) => { res.send('Hello World!') }) // 启动服务器 app.listen(3000, () => { console.log('Server is running at http://localhost:3000') })
以上代码定义了一个 Express 应用程序,并设置了一个路由,当访问根路径时,返回一个 "Hello World!" 的响应。最后,通过 app.listen() 启动服务器,监听 3000 端口。
测试 API
保存 index.js 文件后,可以通过以下命令启动服务器:
node index.js
然后,在浏览器中访问 http://localhost:3000,应该可以看到 "Hello World!" 的响应。
添加更多路由
现在,我们可以添加更多的路由,以实现 RESTful API 的功能。
获取所有资源
首先,我们需要添加一个路由,用于获取所有资源。在 index.js 文件中添加以下代码:
// javascriptcn.com 代码示例 // 获取所有资源 app.get('/resources', (req, res) => { // TODO: 查询数据库,获取所有资源 const resources = [ { id: 1, name: 'Resource 1' }, { id: 2, name: 'Resource 2' }, { id: 3, name: 'Resource 3' } ] res.send(resources) })
以上代码定义了一个 GET 请求路由,用于获取所有资源。在实际应用中,我们需要从数据库中查询所有资源,并将其返回给客户端。这里为了演示,直接返回了一个包含三个资源的数组。
获取单个资源
接下来,我们需要添加一个路由,用于获取单个资源。在 index.js 文件中添加以下代码:
// 获取单个资源 app.get('/resources/:id', (req, res) => { // TODO: 查询数据库,获取指定 ID 的资源 const resourceId = req.params.id const resource = { id: resourceId, name: `Resource ${resourceId}` } res.send(resource) })
以上代码定义了一个 GET 请求路由,用于获取指定 ID 的资源。在实际应用中,我们需要从数据库中查询指定 ID 的资源,并将其返回给客户端。这里为了演示,直接返回了一个包含 ID 和名称的对象。
创建资源
然后,我们需要添加一个路由,用于创建资源。在 index.js 文件中添加以下代码:
// 创建资源 app.post('/resources', (req, res) => { // TODO: 从请求中获取资源信息,并保存到数据库 const resource = { id: 4, name: 'Resource 4' } res.status(201).send(resource) })
以上代码定义了一个 POST 请求路由,用于创建资源。在实际应用中,我们需要从请求中获取资源信息,并将其保存到数据库。这里为了演示,直接返回了一个包含 ID 和名称的对象,并设置了 201 状态码。
更新资源
接下来,我们需要添加一个路由,用于更新资源。在 index.js 文件中添加以下代码:
// 更新资源 app.put('/resources/:id', (req, res) => { // TODO: 从请求中获取资源信息,并更新到数据库 const resourceId = req.params.id const updatedResource = { id: resourceId, name: 'Updated Resource' } res.send(updatedResource) })
以上代码定义了一个 PUT 请求路由,用于更新指定 ID 的资源。在实际应用中,我们需要从请求中获取资源信息,并将其更新到数据库。这里为了演示,直接返回了一个包含 ID 和名称的对象。
删除资源
最后,我们需要添加一个路由,用于删除资源。在 index.js 文件中添加以下代码:
// 删除资源 app.delete('/resources/:id', (req, res) => { // TODO: 从数据库中删除指定 ID 的资源 const resourceId = req.params.id res.sendStatus(204) })
以上代码定义了一个 DELETE 请求路由,用于删除指定 ID 的资源。在实际应用中,我们需要从数据库中删除指定 ID 的资源。这里为了演示,直接返回了 204 状态码。
总结
至此,我们已经成功地使用 Express.js 搭建了一个简单的 RESTful API,包括获取所有资源、获取单个资源、创建资源、更新资源和删除资源等功能。通过这个实例,我们了解了 RESTful API 的基本概念和 Express.js 的基本用法,同时也为开发者提供了一个实践的参考。
完整的示例代码可以在以下链接中找到:
https://github.com/expressjs/express/tree/master/examples/rest-api
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/6575353dd2f5e1655de59695