I want to add a where()
clause in my query, but conditionally. Specifically, I want it added only if a sepecific querystring parameter is passe
Yes. Use modify.
As applied to your example:
router.get('/questions', function (req, res) {
knex('questions')
.select('question', 'correct', 'incorrect')
.limit(50)
.modify(function(queryBuilder) {
if (req.query.param) {
queryBuilder.where('somecolumn', req.query.param);
}
})
.then(function (results) {
res.send(results);
});
});