推荐答案
在 Express 中,路由(Route)是指如何定义应用程序的端点(URI)以及如何响应客户端的请求。路由通常由 HTTP 方法(如 GET、POST 等)、路径(URI)和回调函数(处理请求的函数)组成。
定义一个路由的基本语法如下:
app.METHOD(PATH, HANDLER);
app是 Express 的实例。METHOD是 HTTP 请求方法,如GET、POST、PUT、DELETE等。PATH是服务器上的路径,表示请求的 URI。HANDLER是当路由匹配时执行的函数,通常接收req(请求对象)和res(响应对象)作为参数。
例如,定义一个处理 GET 请求的路由:
app.get('/about', function(req, res) {
res.send('About Page');
});本题详细解读
路由的概念
在 Express 中,路由是指将 HTTP 请求(如 GET、POST 等)与特定的 URL 路径进行匹配,并执行相应的处理函数。路由的核心是将客户端的请求映射到服务器端的处理逻辑上。
路由的组成部分
HTTP 方法:路由通常与 HTTP 方法相关联,如
GET、POST、PUT、DELETE等。这些方法定义了客户端请求的类型。路径(Path):路径是 URL 的一部分,用于指定请求的资源位置。例如,
/about表示请求的是关于页面。处理函数(Handler):当路由匹配时,Express 会调用相应的处理函数。这个函数通常接收两个参数:
req(请求对象):包含客户端请求的信息,如请求头、请求体等。res(响应对象):用于向客户端发送响应,如发送 HTML、JSON 数据等。
定义路由的示例
以下是一个简单的 Express 应用,展示了如何定义和处理路由:
// www.javascriptcn.com code example
const express = require('express');
const app = express();
// 定义根路径的 GET 请求路由
app.get('/', function(req, res) {
res.send('Hello World!');
});
// 定义 /about 路径的 GET 请求路由
app.get('/about', function(req, res) {
res.send('About Page');
});
// 定义 /contact 路径的 POST 请求路由
app.post('/contact', function(req, res) {
res.send('Contact Form Submitted');
});
// 启动服务器,监听 3000 端口
app.listen(3000, function() {
console.log('Server is running on port 3000');
});在这个示例中:
- 当客户端访问根路径
/时,服务器会返回 "Hello World!"。 - 当客户端访问
/about路径时,服务器会返回 "About Page"。 - 当客户端向
/contact路径发送 POST 请求时,服务器会返回 "Contact Form Submitted"。
路由参数
Express 还支持动态路由参数,允许在路径中定义变量。例如:
app.get('/users/:userId', function(req, res) {
res.send(`User ID: ${req.params.userId}`);
});在这个例子中,:userId 是一个路由参数,可以通过 req.params.userId 访问客户端传递的值。
路由链
Express 允许将多个处理函数链接到一个路由上,这些函数会按顺序执行。例如:
app.get('/example', function(req, res, next) {
console.log('First handler');
next();
}, function(req, res) {
res.send('Second handler');
});在这个例子中,第一个处理函数会打印日志,然后调用 next() 将控制权传递给下一个处理函数。
总结
Express 中的路由是构建 Web 应用程序的核心部分,它允许开发者定义应用程序的端点,并处理客户端的请求。通过合理使用路由,可以有效地组织和管理应用程序的逻辑。