Express.js 有哪些常用的路由方法?

在 Express.js 中,路由是处理客户端请求的核心部分。它允许你定义不同的 HTTP 方法(如 GET、POST 等)对应的端点和处理逻辑。以下是常用的路由方法:

1. app.METHOD(path, handler)

app.METHOD() 是定义路由的基本方式,其中 METHOD 是 HTTP 请求的方法名(小写),比如 getpostpath 是 URL 路径模式;handler 是当匹配到路径时执行的回调函数。

  • GET (app.get()):用于从服务器获取信息。
  • POST (app.post()):用于向服务器提交数据,通常用于创建资源。
  • PUT (app.put()):用于更新服务器上的资源。
  • DELETE (app.delete()):用于删除服务器上的资源。
  • PATCH (app.patch()):用于对资源进行部分修改。
  • HEAD (app.head()):与 GET 类似,但响应体为空,仅返回头信息。
  • OPTIONS (app.options()):描述目标资源所支持的通信选项。
app.get('/users', (req, res) => {
  // 获取用户列表
});

app.post('/users', (req, res) => {
  // 创建新用户
});

app.put('/users/:id', (req, res) => {
  // 更新指定ID的用户
});

app.delete('/users/:id', (req, res) => {
  // 删除指定ID的用户
});

2. app.all()

app.all() 定义一个对所有 HTTP 方法都有效的中间件或路由处理器。它可以用来设置跨域资源共享(CORS)、身份验证等通用逻辑。

app.all('/api/*', function(req, res, next) {
  // 对所有以 /api 开头的请求生效
  next(); // 必须调用 next() 来传递控制权给下一个中间件/路由
});

3. app.route()

app.route() 提供了一种链式定义多个HTTP方法的能力,这有助于避免重复书写相同的路径。

app.route('/users')
  .get((req, res) => {
    // 获取用户列表
  })
  .post((req, res) => {
    // 创建新用户
  });

4. Router对象

使用 express.Router() 可以创建模块化的、可挂载的路由句柄。这对于构建大型应用或者将路由逻辑分隔开来非常有用。

const express = require('express');
const router = express.Router();

router.get('/', (req, res) => {
  // 主页路由
});

router.get('/about', (req, res) => {
  // 关于页面路由
});

module.exports = router;

然后可以在主文件中使用 app.use() 挂载这个路由器:

const express = require('express');
const app = express();
const myRouter = require('./routes/myRouter');

// 挂载 myRouter 到根路径 '/'
app.use('/', myRouter);

app.listen(3000, () => console.log('Server started on port 3000'));

5. 参数化路径

你可以通过在路径中添加冒号(:paramName)来捕获URL参数,并在路由处理器中访问它们。

app.get('/users/:userId/books/:bookId', (req, res) => {
  res.send(`User ID: ${req.params.userId}, Book ID: ${req.params.bookId}`);
});

6. 正则表达式路径

对于更复杂的路由模式匹配,可以使用正则表达式。

app.get(/\/users?\b/, (req, res) => {
  // 匹配 "/user" 和 "/users"
});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

涔溪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值