我有以下代码结构
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 ..等)都会返回路由器以进行进一步链接(在工作示例中这是某种方式)。
我究竟做错了什么?
答案 0 :(得分:0)
实际上,router.route()
没有返回路由器实例,它返回一个 route 实例,该实例具有可链接的.get()/.post()/...
方法,但不是.route()
。
如果您有兴趣,可以找到router.route()
here的实施。