📅  最后修改于: 2023-12-03 15:38:39.236000             🧑  作者: Mango
在 express.js 中创建路由非常简单,只需要通过 app 对象调用对应的 HTTP 方法,并指定路由路径和处理函数即可。但当我们需要在同一个服务器中创建多个路由时,如何进行组织和管理呢?
以下是一些可行的方案:
可以通过创建多个 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');
});
这种方法的缺点是需要创建多个端口并监听多个服务器实例,代码复杂度较高。
可以使用 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 来访问指定的路由了。将路由器挂载到主应用程序可以有效地避免重复的代码,提高代码的可读性和维护性。
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() 是最常用的方法,它能有效地解决代码复用和组织的问题。