Hallo ich bin neu zu Knoten und würde jede Hilfe zu schätzen wissen.Express Routing: Wie bekomme ich die URL, die den Router passiert hat?
Ich habe diese drei Routen:
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);
Sie sind im Grunde Variationen eines Mungo-Controller. Zuerst bekommt man alle Question
, zweite und dritte tut und Filter durch Category
und Position
ich falsch 3 separate Controller, aber ich frage mich, ob ich sie in nur einem Router verbinden könnte? d. h. Gibt es eine Möglichkeit, zu überprüfen, ob die eingegebene URL von question/category
oder question/position
kam, dann die entsprechende req.params
?
Der Controller für getUserQuestions
wie folgt aussieht:
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"})
}
}
Du sie bereits auf einem Router platzieren so was genau ist die Frage? – peteb