Не могу добиться чтобы вызывалась callback функция при подключении к mongo
-
Приветствую всех!
Пытаюсь научиться работать с монгой через ноду. Знания минимальные.
Из мануала к этому драйверу понял, что при вызове метода connect можно использовать callback функцию для проверки результата подключения. Но не получается добиться того, чтобы эта функция вызывалась.
Если в кубик "Node.js" вписать такой код:var MongoClient = require('mongodb').MongoClient; // Connect to the db MongoClient.connect("mongodb://localhost:27017/exampleDb", function (err, db) { if (err) { console.log("Not connected"); } });
, то при отсутствии БД по указанному пути (у меня БД на сервере) в логе должна появиться подпись "Not connected".
Верно?
Но в логе пусто. И вообще ни какой ошибки не появляется.
Что делаю не так?
-
-
-
@GhostZ Точно, работает.
Я видел это пояснение и попытался так сделать, но не получилось. Решил, что не там копаю. А ошибка была в том, что resolve() я оставил в неправильном месте.
Ваша подсказка помогла найти ошибку. Спасибо!@UserTrue Именно с вашего кода я и начал разбираться. Вещь нужная. Но код в файле подключения у вас более универсальный, к тому же рассчитан на локальную БД. Поэтому мне он показался сложным.
Мне удалось с его помощью подключиться к серверной БД, но с обработкой ошибок там тоже не заладилось. Поэтому решил начать с простейших примеров."Плюсики" добавил. Разбираюсь далее...
-
Приветствую всех!
Возник такой вопрос.
Когда при обращении к БД (пока только для создания документа) в коде пытаюсь использовать название типа "ObjectId", например,{ ... ref: { $ref: "users", $id: ObjectId('6004bc563d505f1b30a3b8cd'), $db: "" } ... }
в лог вываливается ошибка "Can't find variable: ObjectId во время выполнения действия ......."
Или так{ _id: ObjectId('000000000000000000001234') }
ошибка "ReferenceError: ObjectId is not defined".
Если я правильно понимаю, BAS здесь воспринимает тип ObjectId как название переменной.
Что я не так делаю?
Может в ноде модуль какой нужен, кроме драйвера mongodb?
-
@NeVolshebnik said in Не могу добиться чтобы вызывалась callback функция при подключении к mongo:
Приветствую всех!
Возник такой вопрос.
Когда при обращении к БД (пока только для создания документа) в коде пытаюсь использовать название типа "ObjectId", например,{ ... ref: { $ref: "users", $id: ObjectId('6004bc563d505f1b30a3b8cd'), $db: "" } ... }
в лог вываливается ошибка "Can't find variable: ObjectId во время выполнения действия ......."
Или так{ _id: ObjectId('000000000000000000001234') }
ошибка "ReferenceError: ObjectId is not defined".
Если я правильно понимаю, BAS здесь воспринимает тип ObjectId как название переменной.
Что я не так делаю?
Может в ноде модуль какой нужен, кроме драйвера mongodb?Ну по факту ошибка верная, вы в коде указываете переменную ObjectId, точнее вызываете функцию ObjectId с параметром "6004bc563d505f1b30a3b8cd"
-
@Fox Тогда почему эти работают корректно:
{ id_profile: Number(1234), date_time: Date("2021-01-02T11:57:38.000+0000"), date_reg: Date("2021-01-03T00:42:00.000+0000"), ban: Boolean('true'), }
?
Понимаю, что они служебные. Как мне тогда указывать _id документа в монге если потребуется?
-
@NeVolshebnik said in Не могу добиться чтобы вызывалась callback функция при подключении к mongo:
@Fox Тогда почему эти работают корректно:
{ id_profile: Number(1234), date_time: Date("2021-01-02T11:57:38.000+0000"), date_reg: Date("2021-01-03T00:42:00.000+0000"), ban: Boolean('true'), }
?
Потому что вы меняете тип данных
https://learn.javascript.ru/typesПонимаю, что они служебные. Как мне тогда указывать _id документа в монге если потребуется?
Понятия не имею что за ObjectId и почему вы хотите его использовать