快速路由使用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)