返回

Express路由简明手册

前端







## Express路由概述

Express.js中的路由是一个用于处理请求的函数。它可以根据请求的URL和HTTP方法来确定应该执行哪个函数。路由通常被组织成一个树形结构,其中根节点是应用程序的根目录,子节点是应用程序的各个子目录。

例如,以下代码定义了一个根路由,它将所有对`/`的请求都转发到`index.html`文件:

```javascript
app.get('/', (req, res) => {
  res.sendFile('index.html');
});

也可以定义一个子路由,它将所有对/users的请求都转发到users.js模块:

app.use('/users', require('./users.js'));

创建路由

要创建路由,可以使用app.get()app.post()app.put()app.delete()等方法。这些方法分别对应HTTP GET、POST、PUT和DELETE请求。

例如,以下代码定义了一个路由,它将所有对/users的GET请求都转发到getUsers函数:

app.get('/users', getUsers);

也可以定义一个路由,它将所有对/users的POST请求都转发到createUser函数:

app.post('/users', createUser);

路由参数

路由可以包含参数,这些参数可以从请求的URL中提取出来。例如,以下代码定义了一个路由,它将所有对/users/:id的GET请求都转发到getUser函数,其中id参数是从URL中提取出来的:

app.get('/users/:id', getUser);

可以在路由参数中使用正则表达式来匹配特定的字符串。例如,以下代码定义了一个路由,它将所有对/users/:id的GET请求都转发到getUser函数,其中id参数必须是一个数字:

app.get('/users/:id([0-9]+)', getUser);

路由中间件

路由中间件是在路由处理请求之前或之后执行的函数。中间件可以用于验证请求、记录请求或执行其他任务。

例如,以下代码定义了一个中间件,它将在所有对/users的请求之前执行:

app.use('/users', (req, res, next) => {
  // 在此验证请求
  next();
});

也可以定义一个中间件,它将在所有对/users的请求之后执行:

app.use('/users', (req, res, next) => {
  // 在此记录请求
  next();
});

构建REST API

Express.js非常适合构建REST API。REST API是一种遵循REST原则的API,它使用HTTP请求来创建、读取、更新和删除数据。

例如,以下代码定义了一个REST API,它允许用户创建、读取、更新和删除用户:

app.get('/users', getUsers);
app.post('/users', createUser);
app.put('/users/:id', updateUser);
app.delete('/users/:id', deleteUser);

总结

Express.js的路由非常强大,可以轻松地处理各种类型的请求。通过使用路由,可以构建各种各样的应用程序,包括Web应用程序、REST API和移动应用程序。