基本上,我想避免我的主应用程序文件充斥着路由列表的情况。我想知道是否可以组织路由,比如用户,客户端,位置各自到自己的路由器文件,然后让一种主路由器将所有这些文件拉到我的应用程序的入口点(例如索引)。 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;
答案 0 :(得分:2)
您可以使用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。这就是为什么您不需要在每条路线中指定完整路径(例如:/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
返回给您。您会注意到您可以将视图分组为类似的结构。