2

我有一家商店,有些产品可以未发布 - 在前面查看时,它们是 404。但是,如果 url 中给出了“preview=1”,我想预览它们。我正在寻找一种优雅的单行方式将其插入到我的 find 函数中:

var preview = req.param('preview');
Product.findOne({ _id: req.params.id, publish: TRUE_OR_ANY_IF_PREVIEW_SET)}).populate('categories').exec(function(err, product) { }
4

2 回答 2

4

这不是一个单行,但这是典型的方法:

var query = {_id: req.params.id};
if (!preview) {
    query.publish: true
}
Product.findOne(query).populate('categories').exec(function(err, product) { }
于 2012-12-24T20:37:10.677 回答
1
Product.findOne({
  _id: req.param('id')
  publish: req.param('preview') ? true: false
}).populate('categories').exec(function(err, product) { });
于 2012-12-24T21:08:53.673 回答