基本上,我想避免主应用程序文件被路由列表淹没的情况。我想知道是否有可能将用户,客户端,位置的路由组织到各自的路由器文件,然后让某种主路由器将所有这些文件拉入应用程序的入口点(例如索引)。 js / server.js / app.js)。
如果可能,我正在拍摄类似以下内容的照片:
app.js
const app = require('express')();
const mainRouter = require('app/routes/main');
app.use(mainRouter);
main.js
const mainRouter = require('express').Router();
const usersRouter = require('./users');
const locationsRouter = require('./locations');
mainRouter.use('/users', usersRouter);
mainRouter.use('/locations', locationsRouter);
module.exports = mainRouter;
最佳答案
您可以使用express.Router
对象将路由分成逻辑组。每组路由都将使用一个名称来存储在/routes
目录中,该名称反映了与之关联的路由类型,例如clients.js
。
/routes/clients.js
const express = require('express')
const router = express.Router()
router.get('/', (req, res, next) => {
res.render('clients/index', { clients: [] })
})
module.exports = router
然后,这些路由将导入到您的
app.js
中,并使用app.use()
方法在应用程序中注册。此方法还允许您分配一个基础URL,每组导入的路由都将嵌套在该基础URL下。这就是为什么您无需在每个路径中都指定完整路径的原因(例如:/details
而不是/clients/details
)。app.js
const express = require('express')
const app = express()
app.use('/clients', require('./routes/clients'))
浏览到
http://localhost/clients/
,它将返回views/clients/index.html
给您。您会注意到,可以将视图按相似的结构分组。