Nodejs - 正常回调与 exec [重复]
Posted
技术标签:
【中文标题】Nodejs - 正常回调与 exec [重复]【英文标题】:Nodejs - Normal callback vs exec [duplicate] 【发布时间】:2017-09-03 16:48:20 【问题描述】:过去几天我一直在学习 nodejs,但偶然发现了一些我找不到任何好的解释的东西。
基本上它是关于exec
与普通回调,即(err, res) =>
,如下所示:
Product.find().exec((err, products) => );
Product.find(, (err, products) => );
我找到了更多使用exec
的示例,但是当我读到exec
时,我真的不明白为什么。他们似乎都在对我做同样的事情。
所以,我的问题是,我应该使用一个而不是另一个,如果是,为什么?
编辑:
为了清楚起见,Product
是一个 MongoDB 模型/模式。像这样:
const Product = mongoose.model('Product', new Schema(
title: type: String, default: '',
description: type: String, default: '',
price: type: Number, default: ''
));
【问题讨论】:
这不是关于 NodeJS 的问题。这是一个关于Product
是哪个库的问题,以及使用该库 API 的两种不同方式之间有什么区别(如果有的话)。如果您不告诉我们它是什么库,我们将无法帮助您。我们可以猜测它是什么,但要求猜测并不是一个好主意。 (此外,请确保您在发布前仔细阅读库 API 文档作为尽职调查的一部分,并引用任何相关内容。)
@T.J.Crowder Product 只是一个 mongodb 模型。
@T.J.Crowder 更新问题。
我不了解 mongodb,但在大多数其他数据库库中,.exec()
之类的东西允许您动态创建查询。例如:var query = Product(select); if (something) query.where(condition); query.exec(callback)
与Mongoose - What does the exec function do?@slebetman 重复 - 如果您愿意履行职责,我已经投票决定关闭(前提是您同意)。
【参考方案1】:
只需参考以下答案Mongoose - What does the exec function do?
exec 通常用于执行动态创建的查询。
以下是一个简单的代码,它提供了一个可以使用 exec 的想法。
employee.find(, function (err, docs)
// statements
);
employee.find().populate("designation").exec(function (err, docs)
// statements
);
【讨论】:
如果它是重复的(而且很好找),不要回答,评论链接到 dupetarget 的效果,以便拥有投票关闭权的人可以关闭它。 @T.J.Crowder 实际上我发布的是一个例子。你在链接上找不到。为了理解回调和执行之间的区别,我添加了链接。 @LibuMathew:SO 对“重复”的定义是“那里的答案是否回答了这个问题:?”您指出的问题绝对正确(再次,做得好)。有效使用重复是 SO 模型的重要组成部分。如果您认为该问题应该比那里的答案更好回答,但一切都意味着发布答案 - 那里。无论如何,愉快的编码。以上是关于Nodejs - 正常回调与 exec [重复]的主要内容,如果未能解决你的问题,请参考以下文章