как выполнить запрос мангуста в nodejs - PullRequest
0 голосов
/ 30 августа 2018

Я новичок в nodeJS и JS.

Мне нужно получить данные из коллекции mongoose, используя findone, и я хочу сохранить их в переменной. Ниже код хранит значение в resultarray , но не в memindex . Не знаете, как хранить в memindex .

memindex = Manufacturer.findOne({name: result[key].name}, function(err, resultarray) {
console.log("resultarray", resultarray);});

Причина, по которой мне нужно значение в memindex , заключается в том, что мне нужно использовать это в другом состоянии.

Ответы [ 3 ]

0 голосов
/ 30 августа 2018

Используйте функции вместо мутирующих глобалов:

const memindex = await Manufacturer.findOneAsync({name: result[key].name});

Это асинхронная функция, которую вы, возможно, захотите рассмотреть с обещаниями, описанными в Обещаниях и / или асинхронно / ожидающими.

0 голосов
/ 30 августа 2018

Настройки помогают в данный момент двум другим ответам по какой-то причине попросить вас изменить способ назначения переменных.

Ваш исходный код почти у цели. Просто в вашей функции обратного вызова вы не возвращаете результаты запроса.

memindex = Manufacturer.findOne({name: result[key].name}, function(err, resultarray) {
    console.log("resultarray", resultarray);
    return resultarray;
});

В первом параметре findOne указан ваш поисковый фильтр, во втором - функция, которая будет вызываться после завершения ответа. В этом примере мы возвращаем данные вызывающей стороне, которая в данном случае равна memindex.

findOne Reference

0 голосов
/ 30 августа 2018

попробуйте так:

var memindex;

Manufacturer.findOne({name: result[key].name},function(err, resultarray) {
    console.log("resultarray", resultarray);
    memindex = resultarray;
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...