我目前正在使用 Express 和 MongoDb 构建 API 应用程序。 我对 JavaScript 很陌生。关于以更干净、更干燥的方式编写此内容有什么建议吗?
var firstName = req.query.firstName;
var students = req.query.students;
if(firstName){
Instructor.find({firstName: firstName},function(err,instructors){
if(err)
res.status(500).send(err);
else
res.json(instructors);
});
console.log("Instructor name is ", req.query.firstName);
}
else if(students){
Instructor.find({students: students},function(err,instructors){
if(err)
res.status(500).send(err);
else
res.json(instructors);
});
}
else{
Instructor.find(function(err,instructors){
if(err)
res.status(500).send(err);
else
res.json(instructors);
});
}
最佳答案
if
block 中唯一不同的是您传递给 Instructor.find
的第一个参数(如果有的话)。
您可以仅使用 if
语句来确定第一个参数,并使用适当的参数仅调用一次 Instructor.find
。
这是一个例子:
var firstName = req.query.firstName;
var students = req.query.students;
var params = [];
var callback = function(err,instructors){
if(err)
res.status(500).send(err);
else
res.json(instructors);
};
if(firstName){
params.push({firstName: firstName});
} else if(students){
params.push({students: students});
}
params.push(callback);
Instructor.find.apply(Instructor, params);
关于javascript - 需要帮助以 DRY 格式重写它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43959837/