推荐答案
Express 的路由机制允许开发者定义应用程序的端点(URI)以及如何响应客户端的请求。路由的定义通常包括 HTTP 方法(如 GET、POST 等)、路径(如 /users
)以及处理请求的回调函数。
定义路由
在 Express 中,路由可以通过 app.METHOD(path, callback)
的形式定义,其中 METHOD
是 HTTP 方法(如 get
、post
等),path
是请求的路径,callback
是处理请求的回调函数。
-- -------------------- ---- ------- ----- ------- - ------------------- ----- --- - ---------- -- ---- --- ----- ----------------- ----- ---- -- - ------------- --- -------- --- -- ---- ---- ----- ------------------ ----- ---- -- - ---------------- - --- ------- ---
使用路由
路由定义后,Express 会自动将请求的路径与方法匹配,并调用相应的回调函数来处理请求。回调函数通常接收两个参数:req
(请求对象)和 res
(响应对象),用于处理请求和发送响应。
app.get('/users/:id', (req, res) => { const userId = req.params.id; res.send(`Get user with ID ${userId}`); });
本题详细解读
路由的基本概念
路由是 Express 框架中的核心概念之一,它决定了应用程序如何响应客户端的请求。每个路由可以处理特定的 HTTP 方法和路径,并执行相应的逻辑。
路由参数
路由可以包含动态参数,这些参数可以通过 req.params
对象访问。例如,/users/:id
中的 :id
是一个动态参数,可以通过 req.params.id
获取。
app.get('/users/:id', (req, res) => { const userId = req.params.id; res.send(`User ID: ${userId}`); });
路由链
Express 支持链式路由定义,可以在一个路由上定义多个 HTTP 方法。
app.route('/users') .get((req, res) => { res.send('Get all users'); }) .post((req, res) => { res.send('Create a new user'); });
路由模块化
为了保持代码的可维护性,Express 允许将路由模块化。可以将路由定义在单独的文件中,然后通过 app.use()
方法将其挂载到主应用程序上。
-- -------------------- ---- ------- -- --------------- ----- ------- - ------------------- ----- ------ - ----------------- --------------- ----- ---- -- - ------------- --- -------- --- ---------------- ----- ---- -- - ---------------- - --- ------- --- -------------- - ------- -- ------ ----- ------- - ------------------- ----- --- - ---------- ----- ----------- - -------------------------- ----------------- -------------
路由中间件
路由可以包含中间件函数,这些函数在请求到达路由处理函数之前执行。中间件可以用于执行诸如身份验证、日志记录等任务。
app.use('/users', (req, res, next) => { console.log('Request URL:', req.originalUrl); next(); }); app.get('/users', (req, res) => { res.send('Get all users'); });
通过以上方式,Express 的路由机制提供了灵活且强大的功能,使得开发者能够轻松地定义和管理应用程序的端点。