基本上,我想避免主应用程序文件被路由列表淹没的情况。我想知道是否有可能将用户,客户端,位置的路由组织到各自的路由器文件,然后让某种主路由器将所有这些文件拉入应用程序的入口点(例如索引)。 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给您。您会注意到,可以将视图按相似的结构分组。

09-10 10:27
查看更多