目前我有这个:
router.get('/contatos',function(req,res){
if(req.query.nome){
Contato.find({ nome: req.query.nome }, function (err, contato) {
console.log(contato);
if (JSON.stringify(contato) == "[]") {
return res.status(404).json({ Error: "that contact doesn't exist" });
}
if (err) {
return res.status(500);
}
return res.send(contato);
});
}
if(req.query.email){
Contato.find({ email: req.query.email }, function (err, contato) {
if (!contato) {
return res.status(404).json({ Error: "that contact doesn't exist" });
}
if (err) {
return res.status(500);
}
return res.send(contato);
});
}
if(Object.keys(req.query).length === 0){
Contato.find(function (err, contatos) {
if (JSON.stringify(contatos) == "{}") {
return res.status(404).json({ Error: "there are no contacts" });
}
if (err) {
return res.status(500);
}
return res.send(contatos);
}).populate('emergencia');
}
if(!req.query.nome && !req.query.email){
return res.status(400);
}
});
你们可以看到,mongo查询几乎是相同的,唯一改变的是我传递的值,所以为了改变这个我试图做一个函数像这样:
function filtro(campo,valor,req,res){
if(arguments[0] != "undefined" && arguments[1] != "undefined"){
// i pass no parameters to filtro so here i just get all values
}
else{
Contato.find({campo:valor},function(err,contatos){
if(err){
return res.status(500);
}
return res.send(contatos);
});
}
}
然后在我放置的第一个代码中,我只是用return filtro("email",req.query.email)
替换mongo数据
和
return filtro("nome",req.query.nome)
我想知道我在做什么是正确的,我只是想念一些东西,因为在邮递员那里它并没有给我任何不断加载的回复
答案 0 :(得分:1)
为了简化它,你可以做类似......
~/.config/fish/functions/fish_prompt.fish