RESTful API 是一种基于 HTTP 协议的 web 应用程序接口设计风格,其主要目标是提高 web 应用的可扩展性、灵活性和可重用性。在前端开发中,我们经常需要利用 Express.js 来构建 RESTful API 接口,本文将介绍如何使用 Express.js 构建 RESTful API。
Express.js 简介
Express.js 是 Node.js 平台上广泛使用的 web 应用程序框架,其基于 Node.js 提供的 http 模块,使得开发者可以轻松快速地搭建 web 应用程序和 RESTful API。Express.js 提供了简单易用的路由机制、中间件机制以及视图渲染机制,使得开发者能够专注于业务逻辑的实现。
实现 RESTful API
要实现 RESTful API,需要遵循以下几个步骤:
设计 API 接口:RESTful API 的核心是设计良好的 API 接口,要保证接口的清晰、易用和易扩展。
设计数据模型:RESTful API 需要设计良好的数据模型,以便在不同的请求中使用。数据模型应该根据业务需求设计,通常采用关系型数据库或非关系型数据库保存数据。
编写请求处理程序:RESTful API 将所有请求都视为 HTTP 请求,因此需要编写处理 GET、POST、PUT 和 DELETE 请求等的处理程序。在 Express.js 中,请求处理程序通常称为路由。
设计路由:RESTful API 的路由应该设计清晰、简洁。每个路由应该对应一个 API 接口,以便于 API 的管理和维护。
下面我们介绍如何使用 Express.js 实现 RESTful API。
示例
我们以用户管理为例,设计以下 API 接口:
GET /api/users // 获取所有用户 GET /api/users/:id // 获取指定 id 用户 POST /api/users // 添加新用户 PUT /api/users/:id // 更新指定 id 用户 DELETE /api/users/:id // 删除指定 id 用户
设计数据模型
我们使用 MongoDB 作为数据库,设计用户数据模型:
// javascriptcn.com 代码示例 const mongoose = require('mongoose'); const userSchema = new mongoose.Schema({ name: String, age: Number }); const User = mongoose.model('User', userSchema); module.exports = User;
编写请求处理程序
我们使用 Mongoose 对 MongoDB 进行操作,实现以下请求处理程序:
// javascriptcn.com 代码示例 const User = require('./models/user'); // 获取所有用户 exports.getUsers = async (req, res) => { const users = await User.find(); res.send(users); }; // 获取指定 id 用户 exports.getUserById = async (req, res) => { const user = await User.findById(req.params.id); res.send(user); }; // 添加新用户 exports.addUser = async (req, res) => { const user = new User(req.body); await user.save(); res.send(user); }; // 更新指定 id 用户 exports.updateUserById = async (req, res) => { const user = await User.findByIdAndUpdate(req.params.id, req.body, { new: true }); res.send(user); }; // 删除指定 id 用户 exports.deleteUserById = async (req, res) => { await User.findByIdAndRemove(req.params.id); res.send({ message: '删除成功' }); };
设计路由
我们将请求处理程序与路由结合起来,设计以下 RESTful API 路由:
// javascriptcn.com 代码示例 const express = require('express'); const router = express.Router(); const UserController = require('./controllers/user'); // 获取所有用户 router.get('/api/users', UserController.getUsers); // 获取指定 id 用户 router.get('/api/users/:id', UserController.getUserById); // 添加新用户 router.post('/api/users', UserController.addUser); // 更新指定 id 用户 router.put('/api/users/:id', UserController.updateUserById); // 删除指定 id 用户 router.delete('/api/users/:id', UserController.deleteUserById); module.exports = router;
启动服务
在应用程序的入口文件中启动 Express.js 服务并监听端口:
// javascriptcn.com 代码示例 const express = require('express'); const mongoose = require('mongoose'); const app = express(); const router = require('./router'); // 连接 MongoDB 数据库 mongoose.connect('mongodb://localhost/restful-api', { useUnifiedTopology: true, useNewUrlParser: true }); // 解析请求体 app.use(express.json()); app.use(express.urlencoded({ extended: true })); // 注册路由 app.use(router); // 启动服务 app.listen(3000, () => { console.log('Server started on port 3000 ...'); });
测试 API 接口
我们可以使用 Postman 工具来测试 API 接口,以添加用户为例:
请求 URL:http://localhost:3000/api/users
请求方法:POST
请求头部:Content-Type:application/json
请求体:
{ "name": "Tom", "age": 20 }
测试结果应该是:
{ "name": "Tom", "age": 20, "_id": "5fd6a966bcc6f86a6e88b6d5", "__v": 0 }
总结
本文介绍了如何使用 Express.js 设计并实现 RESTful API 接口。通过设计良好的 API 接口、数据模型和路由,我们可以轻松快速地搭建 RESTful API,以提供可扩展、灵活和可重用的 web 应用程序服务。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/653cf0fb7d4982a6eb6dfe5a