gpt4 book ai didi

JavaScript - 有条件地调用一个函数

转载 作者:可可西里 更新时间:2023-11-01 09:12:17 25 4
gpt4 key购买 nike

如果我希望我的后端 Node.js API 是通用的,我想让客户自己决定他们是想要一个“精简”的 MongoDB 查询还是一个完整的查询。

为了返回 JSON(实际上是 POJSO,而不是 JSON),我们像这样使用 lean():

Model.find(conditions).limit(count).lean().exec(function (err, items) {});

但是,如果我想有条件地调用 lean() 怎么办?

if(isLean){

Model.find(conditions).limit(count).lean().exec(function (err, items) {});

else(){

Model.find(conditions).limit(count).exec(function (err, items) {});

}

有两个不同的调用没什么大不了的,但想象一下,如果我们有多个条件,而不仅仅是 isLean,那么我们就会有一个阶乘的事情发生在我们有的地方许多电话,而不仅仅是 2 个不同的电话。

所以我想知道有条件地调用 lean() 的最佳方法是什么 - 我唯一的想法是如果 isLean 为假,则将 lean 变成空操作。 ..

这将涉及一些猴子补丁 TMK -

function leanSurrogate(isLean){
if(isLean){
return this.lean();
}
else{
return this;
}
}

谁有更好的东西?

(或者 mongoose API 可能已经有了这个:lean(false)lean(true)...并且默认为 true...)

最佳答案

我觉得你想多了。您不必限制自己一次性使用一长串方法调用。

您可以在需要的地方分解它,从而避免重复代码:

var query = Model.find(conditions).limit(count);

if (isLean) {
query = query.lean();
}

query.exec(function (err, items) {});

关于JavaScript - 有条件地调用一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33455507/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com