【发布时间】:2012-11-24 23:08:52
【问题描述】:
这就是我想要做的。
我在受信任的环境中使用 mongoosejs(也就是传递的内容始终被认为是安全的/预先验证的),我需要在我运行的每个查询中传递“选择”和“填充”内容。对于每个请求,我都会以一致的方式得到这个。我想做这样的事情:
var paramObject = sentFromUpAbove; // sent down on every Express request
var query = {...}
Model.myFind(query, paramObject).exec(function(err, data) {...});
我将传递给中间件或其他构造的函数很简单,只是:
function(query, paramObject) {
return this.find(query)
.populate(paramObject.populate)
.select(paramObject.select);
}
findOne 也是如此。我知道如何通过直接扩展 Mongoose 来做到这一点,但这感觉很脏。我宁愿使用中间件或其他一些结构,以干净且有点面向未来的方式做到这一点。
我知道我可以在一个模型一个模型的基础上通过静力学来实现这一点,但我想在每个模型上普遍这样做。有什么建议吗?
【问题讨论】:
-
显然,添加到原型是实现此目的的方法。脏不脏我想是时候潜入水中了。