📌  相关文章
📜  如何在同一个 express.js 服务器中创建多个路由?(1)

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

如何在同一个 express.js 服务器中创建多个路由?

在 express.js 中创建路由非常简单,只需要通过 app 对象调用对应的 HTTP 方法,并指定路由路径和处理函数即可。但当我们需要在同一个服务器中创建多个路由时,如何进行组织和管理呢?

以下是一些可行的方案:

1. 创建多个 app 对象

可以通过创建多个 app 对象来实现创建多个路由的需求。每个 app 对象都可以独立地处理请求和响应。

// app1.js
const express = require('express');
const app = express();

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

app.listen(3000, () => {
  console.log('App1 listening at http://localhost:3000');
});

// app2.js
const express = require('express');
const app = express();

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

app.listen(3001, () => {
  console.log('App2 listening at http://localhost:3001');
});

这种方法的缺点是需要创建多个端口并监听多个服务器实例,代码复杂度较高。

2. 使用 express.Router

可以使用 express.Router() 来创建路由器,路由器可以定义一组相关的路由,可在主应用程序中挂载。

// routes.js
const express = require('express');
const router = express.Router();

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

module.exports = router;

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

const app = express();

app.use('/router', router);

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

app.listen(3000, () => {
  console.log('Server listening at http://localhost:3000');
});

这样我们就可以通过 /router 来访问指定的路由了。将路由器挂载到主应用程序可以有效地避免重复的代码,提高代码的可读性和维护性。

3. 使用 app.route

app.route() 是一个特殊的路由处理方法,它可以用于定义单个路由的多个操作。

// app.js
const express = require('express');
const app = express();

app.route('/')
  .get((req, res) => {
    res.send('GET request to home page');
  })
  .post((req, res) => {
    res.send('POST request to home page');
  })
  .put((req, res) => {
    res.send('PUT request to home page');
  });

app.listen(3000, () => {
  console.log('Server listening at http://localhost:3000');
});

这种方法适用于需要在同一个 url 上支持多个操作的情况,如 RESTful API 的实现。

总结

以上是在同一个 express.js 服务器中创建多个路由的三种方法,我们可以根据自己的业务场景选择最适合的方法进行实现。其中,使用 express.Router() 是最常用的方法,它能有效地解决代码复用和组织的问题。