0
我基本上有一个文件为每个路由名称(即:things.js
) 在每个文件中完全相同的东西。如何将此路线文件(koa @ next - v2)转换为使用ES6的继承类?
我想用ES6班base.js
,做默认与覆盖在特定的路由文件things.js
这里,每个请求的方法类型的能力,以创建一个基Route
类是things.js
路由文件:
'use strict';
const path = require('path');
const fs = require('fs');
const name = path.basename(__filename, '.js');
const Router = require('koa-router');
const Controller = require(`../controllers/${name}`);
const controller = new Controller();
const router = new Router({ prefix: `/${name}` });
router.get('/', controller.getAll.bind(controller));
router.post('/', controller.post.bind(controller));
router.get('/:id', controller.get.bind(controller));
router.put('/:id', controller.put.bind(controller));
router.patch('/:id', controller.patch.bind(controller));
router.delete('/:id', controller.delete.bind(controller));
module.exports = router;
不知怎的,我想上面的代码在Route.js
,然后做class Things extends Route {}
在我想改变某些特定路线的事件。
我可以在方法上做继承,但不知道如何在继承模型中处理这些路由器定义。
这对我来说似乎不是很好的做法,因为你并没有从基类继承任何东西。另外你怎么可以用一个函数来做到这一点?我没有结婚使用ES6类,只是认为这将是最简单的方法来覆盖一组默认值。 – chovy
我不确定你的意思是“没有继承任何东西”。也许如果你更具体地解释你想达到的目标,我可能会有更多的帮助。你问了如何通过扩展基类来为特定的路由设置不同的行为,我的答案显示。至于功能评论,我应该说“功能”而不是“功能”。我提到它是因为我同意基于类的解决方案是过度的,但这是你特别要求的。 –