目前,我在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);
})
}
这很好用。但我多次呼叫路由,而且可能很长。所以我试图创建一个可以被各种路由调用的回调函数。例如。
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));
然而,我总是得到一个" req未定义"最后一行的错误。只是想知道我在这里做错了什么?
答案 0 :(得分:1)
router
将函数作为参数,而不是执行该函数的结果。
router.get('/api/comments', testFunction);
将有效。
答案 1 :(得分:1)
尝试router.get('/api/comments', function(req, res, next)
代替connectionString="Server=localHost;Database=localDatabase;..."