Routing 在 Express.js :处理用户请求

在 中 Express.js, routing 是一个重要的概念,它允许您定义应用程序如何处理来自用户的传入 HTTP 请求。 路由使您能够在用户向应用程序上的特定 URL 发送请求时指定特定操作。

第 1 步:创建基本 Route

要创建 route in Express.js,您可以使用 app.METHOD(PATH, HANDLER) 应用程序对象( app) 的方法来注册 route 特定 HTTP 方法 METHOD 和路径 PATH。 HANDLER 是一个处理函数,当请求命中该函数时将调用该函数 route。

例如,要创建一个 route 处理 请求 GET/hello,您可以使用以下代码:

app.get('/hello',(req, res) => {  
  res.send('Hello, this is the /hello route!');  
});  

第 2 步:处理请求和响应

在处理函数中,您可以处理来自用户的传入请求并使用 req(request) 和 res(response) 对象进行响应。 该 req 对象包含有关传入请求的信息,例如 URL 参数、发送的数据、发送者的 IP 地址等。该 res 对象包含响应请求的方法,例如 res.send()res.json()res.render() 等。

第 3 步:处理多条路由

Express.js 允许您使用不同的 HTTP 方法为同一 URL 定义多个路由。 例如:

app.get('/hello',(req, res) => {  
  res.send('Hello, this is the GET /hello route!');  
});  
  
app.post('/hello',(req, res) => {  
  res.send('Hello, this is the POST /hello route!');  
});  

步骤 4:处理动态参数

您还可以定义包含动态参数的路由,动态参数由冒号( :) 定义。 例如:

app.get('/users/:id',(req, res) => {  
  const userId = req.params.id;  
  res.send(`Hello, this is the GET /users/${userId} route!`);  
});  

当用户向 发出请求时 /users/123,该 userId 变量的值为“123”。

第5步: Routing 与模块分离

在较大的项目中,您可能希望将路由分成单独的文件,以保持源代码的组织性和可管理性。 您可以使用 module.exports 在单独的文件中定义路由,然后将它们导入到主文件中。 例如:

// routes/users.js  
const express = require('express');  
const router = express.Router();  
  
router.get('/profile',(req, res) => {  
  res.send('This is the /profile route in users.js!');  
});  
  
module.exports = router;  
// app.js  
const usersRouter = require('./routes/users');  
app.use('/users', usersRouter);  

第6步:处理不存在的路由

最后,如果用户请求不存在的 route,您可以定义 404 route 来处理它。 route 这是通过在主文件末尾 设置默认值来完成的:

app.use((req, res, next) => {  
  res.status(404).send('Route not found!');  
});  

我们已经学习了如何在 Express.js. 通过使用此功能,您可以灵活而强大地自定义和处理用户请求,使您的应用程序更具适应性和可扩展性。 不断探索和利用途径来构建丰富而精彩的Web应用程序!