如何继承Express路由器并在里面调用super方法
How to inherit Express router and also call super inside method?
Express Router我想要"继承"/扩展的功能
var proto = module.exports = function(options) {
var opts = options || {};
function router(req, res, next) {
router.handle(req, res, next);
}
// mixin Router class functions
router.__proto__ = proto;
router.params = {};
router._params = [];
router.caseSensitive = opts.caseSensitive;
router.mergeParams = opts.mergeParams;
router.strict = opts.strict;
router.stack = [];
return router;
};
所以目的是创建我自己的函数/类来扩展这个express路由器并覆盖route
方法以接受额外的参数,但也能够调用express路由器的super.route
我已经尝试了几种方法,包括util.inherits
,但没有工作。
如果可能的话,也请提供一些解释
最终目标是这样的:
var testRouter = express.Router();
testRouter.route('/test-route', 'aaa' /* my extra param here */)
.get(controller.testWhatever)
能够重写route方法来添加新参数,但保留旧功能
认为这个例子解释了你在寻找什么
// Create a class
function Vehicle(color){
this.color = color;
}
// Add an instance method
Vehicle.prototype.go = function(){
return "Underway in " + this.color;
}
// Add a second class
function Car(color){
this.color = color;
}
// And declare it is a subclass of the first
Car.prototype = new Vehicle();
// Override the instance method
Car.prototype.go = function(){
return Vehicle.prototype.go.call(this) + " car"
}
// Create some instances and see the overridden behavior.
var v = new Vehicle("blue");
v.go() // "Underway in blue"
var c = new Car("red");
c.go() // "Underway in red car"
相关文章:
- D3在一个调用中绘制不同的SVG形状,没有可见性
- 在刚刚调用的append函数之后,jquery.height()不会返回实际值
- 在ajax调用中阻止来自JS对象的函数
- curl和fileget_contents在ajax调用后不起作用
- ASP.NET MVC 3-在ajax调用后,重定向到新页面或生成页面刷新
- innerHTML的子字符串可以在初始调用时提取吗
- 当达到codeigniter/tank auth会话超时时,在ajax调用中处理php重定向
- 为什么Jquery$.ajax在函数调用中触发所有statusCode,即使调用成功
- Backbone fetch中的Ajax在fetch调用退出后完成,因此fetch调用中没有成功/失败事件
- HtmlBox(jquery插件)在ajax调用中不起作用
- 在函数调用中封装数据除了隐藏数据之外还有什么优点
- 无法在其他调用上设置jQuery对话框选项
- show-hide只在ajax调用中第一次工作
- 在AJAX调用中获取重定向的php页面名称
- 在JavaScriptAjax调用中从web服务中的XMLDocument获取响应.
- 在Jquery调用之间添加其他函数
- 无法在ajax调用中发布绝对文件路径-无论我做什么,它都会返回斜杠
- 如果满足某些条件,如何在不调用模态的情况下首先调用类
- 如何继承Express路由器并在里面调用super方法
- Firefox插件,在里面调用一个函数