I'm using node.js express MongoDB and Mongoose to create rest api for my app. I'm wondering that there is any kind of type to replace such code like below for more generic? I do not want to pass all params all the time, but in only certain time. The most of time I just want to pass a part of them. Normally in Java, I create builder for such stuff, but I don't know any tricks for Javascript :)
exports.getMessages = function (req, res) {
var from = req.query.from;
var deleted = req.query.deleted;
var readed = req.query.readed;
if(from && deleted && readed) {
Message.find({to: req.user.email, from: from, deleted: deleted, readed: readed}, function(err, messages) {
if(err) {
res.send(err);
}
res.json(messages);
})
} else if(from && deleted) {
Message.find({to: req.user.email, from: from, deleted: deleted}, function(err, messages) {
if(err) {
res.send(err);
}
res.json(messages);
})
} else if (from && readed) {
Message.find({to: req.user.email, from: from, readed: readed}, function (err, messages) {
if(err) {
res.send(err);
}
res.json(messages);
});
} else if(deleted && readed) {
Message.find({to: req.user.email, deleted: deleted, readed: readed}, function (err, messages) {
if(err) {
res.send(err);
}
res.json(messages);
});
} else if(deleted){
Message.find({to: req.user.email, deleted: deleted}, function(err, messages) {
if(err) {
req.send(err);
}
res.json(messages);
})
} else if(readed){
Message.find({to: req.user.email, readed: readed}, function(err, messages) {
if(err) {
req.send(err);
}
res.json(messages);
});
} else if(from){
Message.find({to: req.user.email, from: from}, function(err, messages) {
if(err) {
req.send(err);
}
res.json(messages);
});
}
};