- NodeJs从零开始学习计划
- NodeJs的介绍
- JavaScript 的基础知识
- NodeJs的安装及运行机制
- NodeJs常用模块
- NodeJs的文件读写及Http服务器的创建
- 回调函数及异步事件
- NodeJs的模块系统
- Web 开发基础
- NodeJs数据库交互
- NodeJs相关测试框架
- NodeJs安全
- NodeJs性能优化
- Node.js 中使用 GraphQL、WebSockets 和 Serverless
Web 开发基础
class RESTful1. 构建 RESTful API
RESTful API 是一种基于 HTTP 协议的接口设计风格,通过 HTTP 方法(GET、POST、PUT、DELETE 等)对资源进行操作。学习构建 RESTful API 的关键在于理解 HTTP 请求的处理、路由、状态码、请求和响应对象。
1.1 HTTP 请求处理
在构建 RESTful API 时,处理 HTTP 请求是核心。请求通常包含以下几个部分:
- 请求方法:GET(获取资源)、POST(创建资源)、PUT(更新资源)、DELETE(删除资源)等。
- 请求 URL:指向资源的路径。
- 请求头:包含元数据,例如
Content-Type
和Authorization
。 - 请求体:在 POST 或 PUT 请求中,通常包含要发送到服务器的数据。
1.2 路由
路由是将特定的 HTTP 请求映射到处理函数的机制。不同的路径和方法对应不同的操作。
示例:简单的路由
const express = require('express');
const app = express();
app.get('/api/items', (req, res) => {
res.send('获取所有物品');
});
app.post('/api/items', (req, res) => {
res.send('创建一个新物品');
});
app.listen(3000, () => console.log('服务器运行在 http://localhost:3000'));
1.3 状态码
HTTP 状态码用于表示请求的结果:
- 200 OK:请求成功。
- 201 Created:资源成功创建。
- 400 Bad Request:客户端请求有误。
- 401 Unauthorized:未授权的请求。
- 404 Not Found:请求的资源不存在。
- 500 Internal Server Error:服务器错误。
示例:返回状态码
app.get('/api/items/:id', (req, res) => {
const item = findItemById(req.params.id);
if (!item) {
return res.status(404).send('物品未找到');
}
res.status(200).json(item);
});
1.4 请求/响应对象
在 Express.js 中,req
对象表示请求,res
对象表示响应。你可以通过 req.body
读取请求体,通过 res.send
、res.json
等方法发送响应。
2. Express.js 框架
Express.js 是 Node.js 上最流行的 web 框架,简洁灵活,适合构建 RESTful API。掌握 Express.js 的使用是构建高效 API 的基础。
2.1 使用中间件
中间件是 Express.js 中处理请求的核心概念,可以在处理请求前执行一些操作,如解析请求体、验证用户身份等。
示例:使用中间件
const express = require('express');
const app = express();
// 解析 JSON 请求体
app.use(express.json());
// 自定义中间件:记录请求时间
app.use((req, res, next) => {
console.log('请求时间:', new Date());
next();
});
2.2 路由
Express.js 的路由系统允许你将不同的路径和方法与处理函数关联。
示例:定义路由
app.get('/api/users', (req, res) => {
res.send('获取用户列表');
});
app.post('/api/users', (req, res) => {
const user = req.body;
// 创建用户逻辑
res.status(201).json(user);
});
你可以将路由分组到一个单独的模块中,方便管理:
// routes/users.js
const express = require('express');
const router = express.Router();
router.get('/', (req, res) => res.send('获取用户列表'));
router.post('/', (req, res) => res.status(201).json(req.body));
module.exports = router;
// 在主文件中使用
const userRoutes = require('./routes/users');
app.use('/api/users', userRoutes);
2.3 错误处理
处理错误是构建稳健 API 的关键。Express 提供了一个统一的错误处理机制,可以捕获所有的错误并返回适当的响应。
示例:全局错误处理
app.use((err, req, res, next) => {
console.error(err.stack);
res.status(500).send('服务器内部错误');
});
总结
通过学习如何构建 RESTful API 和掌握 Express.js,你将能够设计和实现高效、可扩展的 API。这些技能在现代 web 开发中至关重要,并且是构建后端服务的重要基础。
评论区
评论列表
{{ item.user.nickname || item.user.username }}