【发布时间】: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 重复 - 如果您愿意履行职责,我已经投票决定关闭(前提是您同意)。