链和混合表达路由器(.route)和(.get,.post ......等)方法

时间:2017-06-28 14:16:33

标签: javascript express

我有以下代码结构

let router = require( 'express' ).Router(); 

以后我定义我的路线如下:

router
    .route( '/' )
    .get( listMiddleware );

router
    .route( '/:id' )
    .get( getOneByIdMiddleware );

当我尝试优化我的代码并删除不必要的第二个路由器调用(从我的角度来看),如下所示,它不起作用!

router
    .route( '/' )
    .get( listMiddleware )
    .route( '/:id' )
    .get( getOneByIdMiddleware );

我得到了这个TypeError

TypeError: router.route(...).get(...).route is not a function

.route()在路由器原型中,我认为每个路由器方法(如get,post ..等)都会返回路由器以进行进一步链接(在工作示例中这是某种方式)。

我究竟做错了什么?

1 个答案:

答案 0 :(得分:0)

实际上,router.route()没有返回路由器实例,它返回一个 route 实例,该实例具有可链接的.get()/.post()/...方法,但不是.route()

如果您有兴趣,可以找到router.route() here的实施。