【发布时间】:2016-11-16 11:55:53
【问题描述】:
您好,我是 node 新手,不胜感激。
我有这 3 条路线:
router.get('/user/question', auth, ctrlQuestions.getUserQuestions);
router.get('/user/question/category/:category', auth, ctrlQuestions.getUserQuestionsByCategory);
router.get('/user/question/position/:position', auth, ctrlQuestions.getUserQuestionsByPosition);
它们基本上是一种猫鼬控制器的变体。第一个得到所有Question,第二个和第三个得到并通过Category和Position过滤
我错了 3 个独立的控制器,但我想知道是否可以将它们组合成一个路由器?即有没有办法检查输入的URL来自question/category或question/position,然后得到对应的req.params?
getUserQuestions 的控制器如下所示:
module.exports.getUserQuestions = function(req, res) {
if (req.payload.email) {
User
.findOne({"email" : req.payload.email})
.populate({
/////// There will be a match option here for filtering
path : 'questions',
})
.exec(function(err, user){
if (err) return sendJSONresponse(res, 404, err);
if (user.length == 0) return sendJSONresponse(res, 404, {"message" : "no user found"});
sendJSONresponse(res, 200, user.questions);
})
} else {
return sendJSONresponse(res, 404, {"message" : "invalid user email"})
}
}
【问题讨论】:
-
您已经将它们放在一台路由器上,那么问题到底是什么?