合并来自两个文件的路由以使Express Router可以在同一级别处理它们的最佳方法是什么?我在想这样的事情:
默认路由文件
每次生成器运行时,都会生成并覆盖此文件:
var express = require('express'),
router = express.Router(),
custom = require('./custom.routes');
router.get('/', function (req, res) {
});
router.post('/', function (req, res) {
});
router.put('/', function (req, res) {
});
router.use('/', custom);
module.exports = router;
Run Code Online (Sandbox Code Playgroud)
自定义路由文件
此文件只会在第一次生成,并且永远不会被覆盖。
var express = require('express'),
router = express.Router();
router.post('/custom-method', function (req, res) {
});
module.exports = router;
Run Code Online (Sandbox Code Playgroud)
父路由文件
此文件不断生成并覆盖。它负责提供顶层api路线:
var express = require('express'),
apiRouter = express.Router();
var widgetRouter = require('./widget.routes');
apiRouter.use('/widgets', widgetRouter);
var sprocketRouter = require('./sprocket.routes');
apiRouter.use('/sprockets', sprocketRouter);
module.exports = apiRouter;
Run Code Online (Sandbox Code Playgroud)
显而易见的目标是允许开发人员自定义路线,并知道即使再次运行发电机,他的工作也将是安全的。
router.use()不一定需要把您带到树的更深处。您可以在导出第一个文件之前添加以下行。
router.use('/', require('./routes.custom.js'));
Run Code Online (Sandbox Code Playgroud)
这样,您还可以从自定义文件中删除包装器。
| 归档时间: |
|
| 查看次数: |
3437 次 |
| 最近记录: |