Otrzymujesz ten błąd, ponieważ metoda find() jest asynchroniczna, dlatego obietnica jest w toku:nadal się pobiera.
db.collection('diseases').find({
'ttl.txt': {
$regex: data,
$options: 'i'
}
}).toArray().then((data) => {
// Here you can do something with your data
doSomethingWithTheResult(result)
})
Zauważ, że masz swoje dane w wywołaniu zwrotnym. Więcej informacji o obietnicach znajdziesz w Obietnica
W zależności od wersji węzła (chyba 7.6+), możesz użyć czegoś takiego
async function getResults() {
return db.collection('diseases').find({
'ttl.txt': {
$regex: data,
$options: 'i'
}
}).toArray();
}
const results = await getResults();
Więc twój kod wygląda jak kod synchroniczny. Kluczem jest tutaj polecenie async/await, które czeka na wyniki obietnicy.
Mam nadzieję, że to pomoże!