Express 是一款基于 Node.js 的 Web 开发框架,它提供了简洁的 API,使得 Web 应用开发变得更加高效和方便。本文将详细介绍 Express 的使用方法,包括安装、基本概念、路由、中间件、模板引擎等,并给出相应的代码示例。
首先,确保你已经安装了 Node.js。接下来,在你的项目目录中,运行以下命令来初始化一个新的 Node.js 项目:
npm init
然后,通过 npm 安装 Express:
npm install express --save
创建一个名为 app.js 的文件,然后输入以下代码:
javascript
Copy
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!” 的输出。
路由是指如何定义应用的端点(URI)以及如何响应客户端的请求。在 Express 中,可以通过各种 HTTP 方法(如 GET、POST、PUT、DELETE 等)和 URL 路径来定义路由。
例如,创建一个响应 GET 请求的路由:
// 响应 GET 请求
app.get('/users', (req, res) => {
res.send('这是一个 GET 请求');
});
创建一个响应 POST 请求的路由:
// 响应 POST 请求
app.post('/users', (req, res) => {
res.send('这是一个 POST 请求');
});
中间件是 Express 应用中处理请求和响应的函数,它们可以访问请求对象(req)、响应对象(res)以及应用请求-响应周期中的下一个中间件函数。中间件的功能包括:
执行任何代码。 修改请求和响应对象。 结束请求-响应循环。 调用堆栈中的下一个中间件。 例如,创建一个简单的中间件函数:
const loggerMiddleware = (req, res, next) => {
console.log(`${req.method} ${req.url}`);
next();
};
app.use(loggerMiddleware);
下面是一个简单的 Express 应用实例,包括路由和中间件的使用:
const express = require('express');
const app = express();
const port = 3000;
// 中间件
const loggerMiddleware = (req, res, next) => {
console.log(`${req.method} ${req.url}`);
next();
};
app.use(loggerMiddleware);
// 路由
app.get('/', (req, res) => {
res.send('欢迎访问首页!');
});
app.get('/users', (req, res) => {
res.send('用户列表');
});
app.post('/users', (req, res) => {
res.send('添加用户');
});
app.put('/users/:id', (req, res) => {
res.send(`更新用户 ${req.params.id}`);
});
app.delete('/users/:id', (req, res) => {
res.send(`删除用户 ${req.params.id}`);
});
app.listen(port, () => {
console.log(`Example app listening at http://localhost:${port}`);
});
Express 支持多种模板引擎,如 Pug、EJS、Handlebars 等。以下是使用 EJS 作为模板引擎的示例。
首先,安装 EJS:
npm install ejs --save
然后,在项目中创建一个名为 views 的文件夹,并在其中创建一个名为 index.ejs 的文件,内容如下:
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Express 示例</title>
</head>
<body>
<h1>欢迎访问首页!</h1>
<p><%= message %></p>
</body>
</html>
接下来,修改 app.js,添加模板引擎支持:
const express = require('express');
const app = express();
const port = 3000;
// 设置模板引擎
app.set('view engine', 'ejs');
// 中间件
const loggerMiddleware = (req, res, next) => {
console.log(`${req.method} ${req.url}`);
next();
};
app.use(loggerMiddleware);
// 路由
app.get('/', (req, res) => {
res.render('index', { message: '这是一个使用 EJS 的 Express 示例' });
});
// 其他路由...
app.listen(port, () => {
console.log(`Example app listening at http://localhost:${port}`);
});
现在,访问 http://localhost:3000,你将看到使用 EJS 渲染的页面。
在Express中,可以使用中间件函数来处理错误。当应用程序发生错误时,Express将调用下一个错误处理中间件,并将错误对象作为参数传递给它。
例如,可以定义一个包含错误处理中间件的路由:
app.get('/error', function(req, res, next) {
const err = new Error('Custom Error');
err.status = 500;
next(err);
});
app.use(function(err, req, res, next) {
res.status(err.status || 500);
res.send(`Error: ${err.message}`);
});
在这个例子中,当请求发送到/error路径时,路由处理函数将创建一个自定义错误对象,并将其传递给下一个中间件。错误处理中间件函数将接收到这个错误对象,并将其打印到响应中。
通过本文的介绍,你已经了解了 Express 的基本使用方法和概念,包括安装、路由、中间件、模板引擎等。Express 是一个非常强大且灵活的 Web 开发框架,可以帮助你更高效地开发 Web 应用。希望本文对你有所帮助,祝你在使用 Express 的过程中取得成功!