# 路由基础用法

URL: https://caijiao.org/express/chapter3/1-basic-routing
Source: docs/express/chapter3/1-basic-routing.md
Description: 本章节介绍 Express 路由的基础用法，包括定义基本路由、处理不同请求方法，以及如何组织和响应客户端请求。

路由是 Express 应用处理客户端请求的核心部分。通过路由，可以根据请求的 URL 和 HTTP 方法，执行对应的处理逻辑。

## 定义基本路由

使用 Express 实例的 HTTP 方法函数定义路由：

```js
const express = require('express');
const app = express();

app.get('/', (req, res) => {
  res.send('首页');
});

app.post('/submit', (req, res) => {
  res.send('表单已提交');
});
````

上述代码定义了两个路由，分别响应 GET 和 POST 请求。

## 路由处理函数

每个路由由一个或多个处理函数组成，处理函数接收请求对象、响应对象和 next 函数：

```js
app.get('/hello', (req, res, next) => {
  console.log('处理请求');
  next();
}, (req, res) => {
  res.send('你好，Express！');
});
```

## 多个请求方法的路由

可以使用 `app.route()` 链式定义同一路径的多个请求方法：

```js
app.route('/book')
  .get((req, res) => res.send('获取书籍'))
  .post((req, res) => res.send('新增书籍'))
  .put((req, res) => res.send('更新书籍'));
```

## 路由参数示例

动态路由参数允许匹配多个路径：

```js
app.get('/user/:id', (req, res) => {
  res.send(`用户ID：${req.params.id}`);
});
```

## 启动服务器

完整示例：

```js
const express = require('express');
const app = express();

app.get('/', (req, res) => res.send('首页'));
app.post('/submit', (req, res) => res.send('表单已提交'));

app.listen(3000, () => {
  console.log('服务器运行于 http://localhost:3000');
});
```

## 总结

掌握路由的基础用法是构建 Express 应用的第一步，通过灵活定义路径和请求方法，可以实现丰富的业务逻辑。
