Я новичок в nodeJS и JS.
Мне нужно получить данные из коллекции мангустов с помощью findone и сохранить их в переменной. Код ниже сохраняет значение в resultarray, но не в Memindex. Не знаю, как хранить в Memindex.
memindex = Manufacturer.findOne({name: result[key].name}, function(err, resultarray) {
console.info("resultarray", resultarray);});
Причина, по которой мне нужно значение в Memindex, заключается в том, что мне нужно использовать это в другом состоянии.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


попробуйте так:
var memindex;
Manufacturer.findOne({name: result[key].name},function(err, resultarray) {
console.info("resultarray", resultarray);
memindex = resultarray;
});
Используйте функции вместо изменения глобальных переменных:
const memindex = await Manufacturer.findOneAsync({name: result[key].name});
Поскольку это асинхронная функция, вы, возможно, захотите рассмотреть обещания, находящиеся в Promises и / или async / await.
Да, я знаю, но, как указал OP, он новичок в JS, у него может не быть контекста обещаний мангуста и асинхронности в целом. Это общий ответ для присвоения значения, возвращаемого функцией.
Эта версия - лучший ответ, поскольку предлагает другое решение. +1
Установка на данный момент сопоставляет два других ответа, которые по какой-то причине просят вас изменить способ присвоения переменных ..
Ваш исходный код почти готов. Просто в своей функции обратного вызова вы не возвращаете результаты запроса.
memindex = Manufacturer.findOne({name: result[key].name}, function(err, resultarray) {
console.info("resultarray", resultarray);
return resultarray;
});
В первом параметре findOne находится ваш поисковый фильтр, во втором - функция, которая будет вызываться после завершения ответа. В этом примере мы возвращаем данные вызывающей стороне, которой в данном случае является memindex.
В предыдущем ответе. Вместо глобальной инициализации переменной и последующего изменения ее значения внутри функции используйте саму функцию для возврата данных и их присвоения.