简体   繁体   English

ExpressJS:需要使用app.use()多个文件吗?

[英]ExpressJS: require multiple files with app.use()?

Routing : 路由

app.use('/cms/', require('./routes/index.js'));
app.use('/cms/schools/', require('./routes/schools.js'));

Routes : 路线

/cms/
/cms/schools/
/cms/schools/:schoolId/classes/:classId

Goal : I'd like to split ./routes/schools.js into two files: schools.js and schools_classes.js , to keep a better overview. 目标 :我想分裂./routes/schools.js分为两个文件: schools.jsschools_classes.js ,保持一个更好的概述。

Problem : I'd like to keep the prefixed path /cms/schools/ , but don't know how to split it correctly. 问题 :我想保留前缀路径/cms/schools/ ,但不知道如何正确分割它。

How can I structure the files to reach the desired goal? 如何构造文件以达到期望的目标? Thanks in advance! 提前致谢!

Edit 1 : I tried the following, which is not working (duplicated route prefix): 编辑1 :我尝试了以下操作,但不起作用(重复的路由前缀):

app.use('/cms/', require('./routes/index.js'));
app.use('/cms/schools/', require('./routes/schools.js'));
app.use('/cms/schools/', require('./routes/schools_classes.js'));

You can do It using the express router: 您可以使用快速路由器来做到这一点:

Routes: 路线:

const schoolsRouter = require('./routes/schools');
app.use('/cms/schools', schoolsRouter)

./routes/schools/index.js: ./routes/schools/index.js:

const express = require('express');
const router = express.Router();

router.use('/',require('./schools _controller.js'));
router.use('/:schoolId/classes/:classId', require ('./schools_classes_controller.js'));

module.exports = router;

You can check the entire router docs here: http://expressjs.com/en/4x/api.html#router 您可以在此处查看整个路由器文档: http : //expressjs.com/en/4x/api.html#router

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM