@Kreepall said in BAS не видит окно:
Можете пожалуйста подсказать, что делать с данной проблемой
Нет, нужно смотреть сам сайт
Имеем:
код в модуле Node.js
var MongoClient = require("mongodb").MongoClient;
var url = "mongodb://localhost:27017/";
var mongoClient = new MongoClient(url);
mongoClient.connect();
await(new Promise((resolve, reject) => {
var users = [[DATA]]
const db = mongoClient.db("t2");
const collection = db.collection("ser");
const result = collection.insertMany(users);
resolve()
}));
выполняется без ошибок, данные импортиуреются в БД
Так же без проблем работают функции, обновлени и удаления
код функции find - не работает
const MongoClient = require("mongodb").MongoClient;
const url = "mongodb://localhost:27017/";
const mongoClient = new MongoClient(url);
await (new Promise((resolve, reject) => {
mongoClient.connect(function (err, client) {
const db = client.db("t2");
db.collection("user").findOne(function (err, result) {
console.log(result);
client.close();
});
});
resolve()
}));
При этом функция find(), нормально отрабатывает в VSCode - возвращает искомое значение.
В чем ошибка неработающего find()
или есть специфика написания данной функции под версию ноды в БАС ?
@inotoxic said in MongoDB .find() - не работает:
или есть специфика написания данной функции под версию ноды в БАС ?
Нет, просто вы видимо не знаете как работают promise, resolve надо было добавить в callback функцию. А вообще можно не передавать callback в findOne и тогда вернется promise, который соответственно с await работает, что намного удобней.
@inotoxic said in MongoDB .find() - не работает:
@UserTrue с resolve, банальная не внимательность - спасибо
Ранее на эту же ошибку в лс указал господин @Sadzurami - за что ему отдельно спасибо !
В любом случае можно переписать без промиса
Для vscode этот код надо будет обернуть в async функцию
const url = "mongodb://localhost:27017/";
const mongoClient = new MongoClient(url);
const client= await mongoClient.connect()
const db = client.db("t2");
const result = await db.collection("user").findOne()
console.log(result);
p.s. код не проверял, писал прямо тут )))