Я использую серверную программу, которая работает с mon go db, но я не могу вернуть переменную для использования в коде из запроса mon goose. Должно быть что-то не так с asyn c managem enet.
Я резюмировал, что я хочу сделать с очень простым кодом: я должен найти имя по идентификатору и использовать его.
Представьте, что у вас есть какая-то схема для Thing типа:
const ThingSchema = mongoose.Schema({
_id: mongoose.Schema.Types.ObjectId,
name: String
}
И в маршрутизаторе для URL-адреса у меня есть запрос на получение:
router.get('/:id', (req, res, next) => {
const id = req.params.id;
const name = findName(id);
console.log(name);
res.status(200).json({name: name});
});
Итак, я создал функцию для поиска имени
function findName(id){
var name = Thing.findById(id)
.exec()
.then(docs =>{
var string = "the name is: " + docs.name;
return string
});
return name
}
Когда я отправляю запрос GET с действительным идентификатором, он дает мне:
В журнале: Promise {}
И obv в ответ: {"name": {}}
Я не дурак, я уже искал десятки топи c и официальных руководств и делал различные попытки, но я не понял, как это сделать.
(простите за плохой английский sh, я из Италии)