express路由_路由

Express 路由是 Node.js web 应用中用于处理 HTTP 请求的路径和函数映射。通过定义路由,可以指定特定 URL 对应的处理逻辑。

Express 是一个 Node.js web 应用框架,提供了一系列强大的功能来帮助开发者快速搭建 Web 服务,路由(Routing)是 Express 中一个核心的功能,它允许应用程序响应对特定 URL 或 URL 模式的请求。

express路由_路由
(图片来源网络,侵删)

基本路由

在 Express 中创建路由非常简单,你只需要调用 app 对象的get()post()put()delete() 等 HTTP 方法,并传入路径和处理函数即可。

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});
});

路由参数

Express 支持在路径中使用参数,这些参数可以是字符串、数字或者布尔值,使用冒号: 开头可以定义一个路由参数,如下所示:

app.get('/users/:id', (req, res) => {
  const userId = req.params.id;
  res.send(User ID is: ${userId});
});

响应方法

在路由处理函数中,你可以调用多种方法来发送响应,如res.send()res.json() 等。

app.get('/users/:id', (req, res) => {
  res.send({ id: req.params.id, message: 'Welcome to user profile!' });
});

链式路由处理

Express 允许将多个路由处理函数链接在一起,以便于代码的组织和复用。

express路由_路由
(图片来源网络,侵删)
app.get('/users/:id', (req, res, next) => {
  // 执行一些中间件逻辑
  next();
}, (req, res) => {
  res.send(User ID is: ${req.params.id});
});

中间件

中间件(Middleware)是介于请求和响应过程之间的函数,用于执行各种任务,如日志记录、请求体解析、错误处理等。

app.use((req, res, next) => {
  console.log('Time:', Date.now());
  next();
});

路由器(Router)

为了组织复杂的路由结构,Express 提供了路由器(Router)对象,你可以创建一个模块化的路由,并在主应用中加载它们。

// users.js
const express = require('express');
const router = express.Router();
router.get('/:id', (req, res, next) => {
  res.send(User ID is: ${req.params.id});
});
module.exports = router;

然后在主应用文件中引入:

const express = require('express');
const usersRouter = require('./users');
const app = express();
const port = 3000;
app.use('/users', usersRouter);
app.listen(port, () => {
  console.log(Example app listening at http://localhost:${port});
});

单元表格:Express 常用路由方法

HTTP 方法 Express 方法 描述
GET app.get() 处理到指定路径的 GET 请求
POST app.post() 处理到指定路径的 POST 请求
PUT app.put() 处理到指定路径的 PUT 请求
DELETE app.delete() 处理到指定路径的 DELETE 请求
PATCH app.patch() 处理到指定路径的 PATCH 请求
ALL app.all() 处理到指定路径的所有类型请求

相关的问题与解答:

Q1: Express 如何处理带有查询参数的 URL?

express路由_路由
(图片来源网络,侵删)

A1: Express 通过req.query 对象提供访问查询参数的能力,对于 URLhttp://example.com/?name=john&age=30,可以使用req.query.name 获取john,使用req.query.age 获取30

Q2: 如何在 Express 中进行路由前缀的处理?

A2: 在 Express 中,可以通过在app.use() 方法中指定路径前缀,然后挂载相应的路由器(Router),从而处理具有相同前缀的路由,如果你有一个路由器处理/admin 下的所有路由,你可以在主应用中这样使用:app.use('/admin', adminRouter);

【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!

(0)
热舞的头像热舞
上一篇 2024-07-05 22:39
下一篇 2024-07-05 22:45

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

广告合作

QQ:14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信