Не могу добиться чтобы вызывалась 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 и почему вы хотите его использовать


Log in to reply
 

  • 12
  • 3
  • 13
  • 3
  • 10
  • 5
  • 23
  • 5