#node.js #mongoose #ejs
Вопрос:
У меня есть коллекция в мангусте. это имя участника, и я использую findOne для поиска такого : var member = findOne(name , (err , docs)=>{console.log(docs)})
а затем я хочу найти больше вещей по элементу var, например : momber.targetNmae в схеме, и это не работает.
Ответ №1:
Вы не должны присваивать значение асинхронной функции, которая ничего не возвращает. Попробуйте использовать async/await, чтобы сделать его более читаемым. Свяжите свой запрос в цепочку после имени коллекции, например:
User.find();
let doc;
try {
doc = await User.findOne({ name: name });
} catch (err) {
console.log(err);
};
console.log(doc);
И без асинхронности/ожидания:
User.findOne({ name: name }, (err, doc) => {
if (!err) {
console.log(doc);
}
});
Комментарии:
1. Спасибо. Я очень стараюсь понять, как работает асинхронность/ожидание, но я не могу понять идею, стоящую за этим.