扩展express.Router

auk*_*auk 4 javascript node.js express

有没有办法扩展express.Router

我尝试了这个:

class Test extends express.Routeur() {

};
Run Code Online (Sandbox Code Playgroud)

但是快递给我丢了一个错误。

有什么办法吗?

Kre*_*zot 7

正确的方法:

class Test extends express.Router {
    constructor() {
        super();
        this.get('/', (req, res) => console.log('test'));
    }
};
Run Code Online (Sandbox Code Playgroud)

在编写时express.Router()(带括号),您已经调用了构造函数,因此您尝试扩展对象而不是类。

  • 您是如何工作的?想要以同样的方式做。但是tslint说`Type'(options ?: RouterOptions)=> Router'不是构造函数类型。 (4认同)
  • @ngfelixl 你弄清楚了吗? (2认同)

Den*_*Den 4

你不能这样做,因为express.Router是一个函数。我还没有找到如何使用该函数扩展类。但是您可以使用http://brianflove.com/2016/03/29/typescript-express-node-js/的方法或使用 ES2015 的标准方法:

import * as express from 'express';

let router = express.Router();

/* GET home page. */
router.get('/', (req, res, next) => {
  res.render('index', { title: 'Express' });
});

export = router;
Run Code Online (Sandbox Code Playgroud)