引言
Express.js 是一个灵活的 Node.js Web 应用框架,它可以帮助开发者快速创建高性能的 Web 应用程序。本文将为您提供一份全面的 Express.js 入门教程,包括基础知识、中间件的使用、路由管理、模板引擎以及一些实战案例。
第1章:Express.js 简介
1.1 什么是 Express.js?
Express.js 是一个基于 Node.js 的 Web 应用框架,它提供了丰富的 API 来帮助开发者构建快速、健壮的 Web 应用程序。它由淘宝前端团队于 2010 年首次发布,现在已经成为 Node.js 社区中最流行的 Web 框架之一。
1.2 Express.js 的特点
- 轻量级:Express.js 本身非常轻量,没有多余的依赖,可以轻松集成到项目中。
- 灵活:Express.js 提供了丰富的 API,开发者可以根据需求进行定制。
- 易于扩展:Express.js 支持中间件机制,可以方便地扩展功能。
- 社区支持:Express.js 拥有庞大的社区,可以方便地找到解决方案。
第2章:安装和配置
2.1 安装 Node.js
首先,您需要安装 Node.js。可以从 Node.js 官网 下载并安装。
2.2 创建项目目录
创建一个新目录,用于存放您的 Express.js 项目。
mkdir express-project
cd express-project
2.3 初始化项目
使用 npm 命令初始化项目。
npm init -y
2.4 安装 Express.js
安装 Express.js 框架。
npm install express
第3章:Express.js 基础
3.1 创建第一个 Express.js 应用
在项目根目录下创建一个名为 app.js 的文件,并添加以下代码:
const express = require('express');
const app = express();
const port = 3000;
app.get('/', (req, res) => {
res.send('Hello, World!');
});
app.listen(port, () => {
console.log(`Example app listening at http://localhost:${port}`);
});
运行以下命令启动应用:
node app.js
打开浏览器,访问 http://localhost:3000,您将看到 “Hello, World!” 消息。
3.2 路由和请求方法
Express.js 使用路由来处理不同类型的请求。以下是一些常用的路由和请求方法:
app.get(): 处理 GET 请求。app.post(): 处理 POST 请求。app.put(): 处理 PUT 请求。app.delete(): 处理 DELETE 请求。
3.3 中间件
中间件是 Express.js 的核心概念之一。它是一个函数,用于处理请求和响应的中间环节。以下是一个简单的中间件示例:
app.use((req, res, next) => {
console.log('请求到达!');
next();
});
第4章:模板引擎
Express.js 支持多种模板引擎,如 EJS、Pug、Handlebars 等。以下是如何使用 EJS 模板引擎的示例:
4.1 安装 EJS
npm install ejs
4.2 配置模板引擎
在 app.js 文件中添加以下代码:
app.set('view engine', 'ejs');
4.3 创建视图文件
在项目根目录下创建一个名为 views 的文件夹,并在其中创建一个名为 index.ejs 的文件。添加以下代码:
<!DOCTYPE html>
<html>
<head>
<title>Express.js 实战案例</title>
</head>
<body>
<h1>Hello, <%= title %></h1>
</body>
</html>
4.4 修改路由
在 app.js 文件中修改路由:
app.get('/', (req, res) => {
res.render('index', { title: 'Express.js' });
});
现在,当您访问 http://localhost:3000 时,您将看到包含 “Hello, Express.js” 的页面。
第5章:实战案例
5.1 用户管理系统
本节将介绍如何使用 Express.js 创建一个简单的用户管理系统。
- 安装所需依赖:
npm install express ejs body-parser mongoose
- 创建数据库模型:
在 models/user.js 文件中创建用户模型:
const mongoose = require('mongoose');
const UserSchema = new mongoose.Schema({
username: String,
password: String
});
module.exports = mongoose.model('User', UserSchema);
- 创建控制器:
在 controllers/userController.js 文件中创建用户控制器:
const User = require('../models/user');
exports.register = (req, res) => {
const { username, password } = req.body;
const user = new User({ username, password });
user.save((err, user) => {
if (err) {
return res.status(500).send('服务器错误');
}
res.send('注册成功');
});
};
- 创建路由:
在 routes/userRoutes.js 文件中创建用户路由:
const express = require('express');
const router = express.Router();
const userController = require('../controllers/userController');
router.post('/register', userController.register);
module.exports = router;
- 配置路由中间件:
在 app.js 文件中添加用户路由中间件:
const userRoutes = require('./routes/userRoutes');
app.use('/user', userRoutes);
现在,您可以使用 http://localhost:3000/user/register 来注册新用户。
5.2 RESTful API
本节将介绍如何使用 Express.js 创建一个 RESTful API。
- 安装所需依赖:
npm install express body-parser mongoose
- 创建数据库模型:
在 models/user.js 文件中创建用户模型:
const mongoose = require('mongoose');
const UserSchema = new mongoose.Schema({
username: String,
password: String
});
module.exports = mongoose.model('User', UserSchema);
- 创建控制器:
在 controllers/userController.js 文件中创建用户控制器:
const User = require('../models/user');
exports.list = (req, res) => {
User.find({}, (err, users) => {
if (err) {
return res.status(500).send('服务器错误');
}
res.json(users);
});
};
- 创建路由:
在 routes/userRoutes.js 文件中创建用户路由:
const express = require('express');
const router = express.Router();
const userController = require('../controllers/userController');
router.get('/users', userController.list);
module.exports = router;
- 配置路由中间件:
在 app.js 文件中添加用户路由中间件:
const userRoutes = require('./routes/userRoutes');
app.use('/api', userRoutes);
现在,您可以使用 http://localhost:3000/api/users 来获取用户列表。
总结
本文从 Express.js 的基本概念入手,介绍了如何创建一个简单的 Express.js 应用,并讲解了模板引擎和中间件的使用。此外,还通过两个实战案例展示了如何使用 Express.js 创建用户管理系统和 RESTful API。希望本文能帮助您快速掌握 Express.js 框架。
