gpt4 book ai didi

javascript - 需要帮助以 DRY 格式重写它

转载 作者:行者123 更新时间:2023-11-30 11:37:14 25 4
gpt4 key购买 nike

我目前正在使用 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com