gpt4 book ai didi

node.js - [Mongoose] 使用来自异步查询的数据覆盖 toJSON

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

我的模式如下:

var CompanySchema = new Schema({
//
});

CompanySchema.methods.getProducts = function(next) {
var Product = require(...);
Product.find({...}).exec(function(err, products) {
if (err)
return next(err)
return next(null, products || []);
});
};

我想知道在序列化 Company 对象时是否有一些方法可以包含 getProducts() 方法的结果,例如:

CompanySchema.methods.toJSON = function() {
var obj = this.toObject();
obj.products = this.getProducts();
return obj;
};

提前谢谢你。

最佳答案

当然,您可以包含它,只是不能同步地替代 toJSON

原因是您不能在同步方法(如 toJSON)中使用异步方法(如 Mongoose 的 find)。

所以你需要让它异步:

CompanySchema.methods.toJSONAsync = function(callback) {
var obj = this.toObject();
this.getProducts(function(products) {
obj.products = products;
});
callback(obj);
};

关于node.js - [Mongoose] 使用来自异步查询的数据覆盖 toJSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19066368/

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