Express 是一个基于 Node.js 平台的快速、轻量级的 Web 应用开发框架,它为开发者提供了简洁而强大的 API,使得构建 Web 应用和 API 变得更加容易。以下是关于 Express 框架的详细介绍:
-
安装 Express
首先,确保已经安装了 Node.js 和 npm(Node 包管理器)。然后,在项目目录下初始化 package.json 文件,并安装 Express:mkdir express-demo cd express-demo npm init -y npm install express
-
创建一个简单的 Express 应用
在项目根目录下创建一个名为 app.js 的文件,并编写以下代码:const express = require('express'); // 创建 Express 应用实例 const app = express(); // 定义端口号 const port = 3000; // 定义一个简单的路由 app.get('/', (req, res) => { res.send('Hello, Express!'); }); // 启动服务器 app.listen(port, () => { console.log(`Server is running on port ${port}`); });
在上述代码中,我们首先引入了 Express 模块,然后创建了一个 Express 应用实例。接着,我们定义了一个根路由 ‘/’,当用户访问该路由时,服务器会返回 ‘Hello, Express!’。最后,我们使用 app.listen() 方法启动服务器,并监听指定的端口。
-
运行应用
在终端中运行以下命令启动应用:node app.js
打开浏览器,访问 http://localhost:3000,你将看到页面上显示 Hello, Express!。
-
路由处理
Express 支持多种 HTTP 请求方法,如 GET、POST、PUT、DELETE 等。
以下是一些常见的路由处理示例:
- GET 请求
app.get('/users', (req, res) => {
res.send('List of users');
});
- POST 请求
// 要处理 POST 请求的表单数据,需要使用中间件
app.use(express.urlencoded({ extended: true }));
app.use(express.json());
app.post('/users', (req, res) => {
const newUser = req.body;
res.send(`New user created: ${JSON.stringify(newUser)}`);
});
- 动态路由
app.get('/users/:id', (req, res) => {
const userId = req.params.id;
res.send(`User with ID ${userId}`);
});
- 中间件
-
中间件是 Express 应用的核心概念之一,它可以在请求处理过程中执行各种任务,如日志记录、身份验证、错误处理等。
-
中间件示例:
// 自定义中间件 const logger = (req, res, next) => { console.log(`Received ${req.method} request for ${req.url}`); next(); // 调用 next() 方法将控制权传递给下一个中间件或路由处理函数 }; // 使用中间件 app.use(logger);
- 静态文件服务
-
Express 可以方便地提供静态文件服务,如 HTML、CSS、JavaScript、图片等。
-
示例:
// 提供静态文件服务 app.use(express.static('public'));
在项目根目录下创建一个名为 public 的文件夹,并在其中放置一些静态文件,如 index.html。然后,访问 http://localhost:3000/index.html 即可查看该文件。
- 错误处理
- 在 Express 中,可以使用错误处理中间件来捕获和处理应用中的错误。
- 示例:
app.use((err, req, res, next) => { console.error(err.stack); res.status(500).send('Something went wrong!'); });
- 模板引擎
-
Express 支持多种模板引擎,如 EJS、Pug、Handlebars 等。
-
示例:
- 安装 EJS
npm install ejs
- 配置 EJS
// 设置视图引擎为 EJS app.set('view engine', 'ejs'); // 设置视图文件的目录 app.set('views', path.join(__dirname, 'views'));
- 创建 EJS 模板文件
在项目根目录下创建一个名为 views 的文件夹,并在其中创建一个名为 index.ejs 的文件:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Express EJS Example</title> </head> <body> <h1>Hello, <%= name %>!</h1> </body> </html>
- 渲染 EJS 模板
app.get('/ejs', (req, res) => { res.render('index', { name: 'Express' }); });
以上是 Express 框架的基本使用方法,通过这些功能,可以构建出功能丰富的 Web 应用和 API。