У меня есть функция QuestionController
show: function (req, res) {
var id = req.params.id;
questionModel.findOne({_id: id}, function (err, question) {
if (err) {
return res.status(500).json({
message: 'Error when getting question.',
error: err
});
}
if (!question) {
return res.status(404).json({
message: 'No such question'
});
}
//var user = userController.show();
return res.render("questions/question", question);
});
},
И я хочу каким-то образом использовать функцию из userController, чтобы я мог получить пользователя, который разместил вопрос. Это функция, которую я хочу использовать:
show: function (req, res) {
var id = req.params.id;
userModel.findOne({_id: id}, function (err, user) {
if (err) {
return res.status(500).json({
message: 'Error when getting user.',
error: err
});
}
if (!user) {
return res.status(404).json({
message: 'No such user'
});
}
return res.json(user);
});
},
Или есть лучший способ, которым я могу достичь этого? Следует отметить, что я обычно использую базы данных отношений.
Код i wi sh для достижения (более элегантным способом, если это возможно):
//this is a questionController function
show: function (req, res) {
var id = req.params.id;
questionModel.findOne({_id: id}, function (err, question) {
if (err) {
return res.status(500).json({
message: 'Error when getting question.',
error: err
});
}
if (!question) {
return res.status(404).json({
message: 'No such question'
});
}
var userID = question.userID;
//this is a function i copied from userController that i would like to call from userController so it would be a bit more elegant
userModel.findOne({_id: userID}, function (err, user) {
if (err) {
return res.status(500).json({
message: 'Error when getting user.',
error: err
});
}
if (!user) {
return res.status(404).json({
message: 'No such user'
});
}
question.username = user.username;
return res.render("questions/question", question);
});
});
},