我是nodeJS和JS的新手。
我需要使用findone从猫鼬集合中获取数据,并将其存储在变量中。下面的代码在 resultarray 中存储值,但不在 memindex 中存储值。不确定如何存储在 memindex 中。
memindex = Manufacturer.findOne({name: result[key].name}, function(err, resultarray) {
console.log("resultarray", resultarray);});
我需要 memindex 的原因是,我需要在其他条件下使用它。
答案 0 :(得分:1)
尝试这种方式:
var memindex;
Manufacturer.findOne({name: result[key].name},function(err, resultarray) {
console.log("resultarray", resultarray);
memindex = resultarray;
});
答案 1 :(得分:1)
使用函数代替突变全局变量:
const memindex = await Manufacturer.findOneAsync({name: result[key].name});
这是一个异步功能,您可能要考虑将Promise驻留在Promise和/或async / await中。
答案 2 :(得分:0)
暂时将其他两个答案放在一边,由于某种原因,它们要求您更改分配变量的方式。
您的初始代码几乎在那里。仅在您的回调函数中,您不会从查询中返回结果。
memindex = Manufacturer.findOne({name: result[key].name}, function(err, resultarray) {
console.log("resultarray", resultarray);
return resultarray;
});
findOne
的第一个参数是您的搜索过滤器,第二个参数是响应完成后将被调用的函数。在此示例中,我们将数据返回给调用方,在这种情况下为memindex
。