📜  基本路由 Express.js - Javascript (1)

📅  最后修改于: 2023-12-03 15:23:40.304000             🧑  作者: Mango

基本路由 Express.js - JavaScript

什么是 Express.js?

Express.js 是一个基于 Node.js 平台的 web 应用开发框架,它提供了丰富的功能来帮助我们快速开发 web 应用。Express 提供了一个简单灵活的方式来搭建 web 应用,并且既可以用于简单的静态网站,也可以用于大型应用程序。

路由

在 web 应用中,路由指的是客户端请求的 URL 和服务器端响应的代码之间的匹配关系。Express.js 提供了一个灵活的路由系统,可以根据不同的 URL 请求来执行不同的代码。这样,我们就可以根据用户的不同请求,返回一个不同的响应结果。

下面是一个简单的路由示例:

const express = require('express');
const app = express();

app.get('/', (req, res) => {
  res.send('Hello, World!');
});

app.listen(3000, () => {
  console.log('Server is listening on port 3000');
});

上面的代码创建了一个 app 对象,这个对象可以用来定义路由。app.get() 方法表示定义了一个 GET 请求的路由,当用户访问根路径 / 时,会执行传入的回调函数,并向客户端返回 Hello, World!

动态路由

除了可以使用静态路由来响应请求,Express 还支持动态路由。这是指路由可以包含变量,这些变量可以以:name的形式出现在路由路径中,并在回调函数中访问。

下面是一个简单的动态路由示例:

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

在这个例子中,路由包含了一个 :userID 变量,用户可以访问 /users/123 这样的路由,其中 123 就是路由变量的值。在回调函数中,我们可以通过 req.params.userID 访问这个变量,并向客户端返回一个响应。

路由中间件

有时候我们需要在路由处理程序执行之前或之后执行一些其他操作,例如鉴权、日志记录等。这时候,我们可以使用路由中间件。

路由中间件是一段代码,它可以在处理请求之前或之后执行。Express.js 具有一些内置的中间件函数,例如 express.json()express.static()。我们也可以自己实现一些中间件。

下面是一个示例,展示了如何实现一个简单的路由中间件:

const log = (req, res, next) => {
  console.log(`[${new Date().toISOString()}] ${req.method} ${req.url}`);
  next();
};

app.use(log);

app.get('/', (req, res) => {
  res.send('Hello, World!');
});

在这个例子中,我们首先定义了一个 log 中间件函数。这个函数会在每个请求到达服务器之前先执行,它会在控制台中打印出请求的方法和 URL。然后,我们使用 app.use() 将这个中间件应用到了整个应用程序中。最后,我们定义了一个 GET 请求的路由,当用户访问根路径 / 时,它会执行回调函数并返回 Hello, World!

总结

在 Express.js 中,路由是指客户端请求的 URL 和服务器端响应的代码之间的匹配关系。我们可以通过定义路由来为特定的 URL 请求提供响应,也可以通过动态路由为包含变量的 URL 请求提供响应。除了路由之外,Express.js 还提供了路由中间件的机制,这是指一段代码可以在处理请求之前或之后执行。我们可以使用一些内置的中间件函数,也可以自己实现一些中间件。