快速路由使用callback函数时未定义的参数

目前,我在Express中使用了很多路线。 有些路线可能相当长。 常见的路线如下所示:

router.get('/api/comments', function(req, res, next){ Comment.find({"user": req.payload._id}).exec(function(err,comments){ if(err){return next(err); } res.json(comments); }) } 

这工作正常。 但是我多次拨打电话,可能会很长。 所以我试图创build一个可以被各种路由调用的callback函数。 例如

 var testFunction = function(req, res, next){ Comment.find({"user": req.payload._id}).exec(function(err,comments){ if(err){return next(err); } res.json(comments); }) } router.get('/api/comments', testFunction(req,res,next)); 

但是,我总会在最后一行得到“请求未定义”错误。 只是想知道我在做什么错在这里?

router采用一个函数作为参数而不是执行该函数的结果。

router.get('/api/comments', testFunction); 将工作。

尝试做router.get('/api/comments', testFunction); 而不是router.get('/api/comments', function(req, res, next)