mongoose.connection()
принимает 3 значения
Connection.prototype.openUri = function(uri, options, callback) {
…
};
throw new MongooseError ('Параметр uri
в openUri()
должен быть' + MongooseError: Параметр uri
для openUri()
должен быть строкой, получившей "undefined" . Убедитесь, что первый параметр для mongoose.connect()
или mongoose.createConnection()
является строкой
Как предлагаетсяпо вашему сообщению об ошибке uri
, который вы передаете, оказывается undefined
. Это происходит, если вы не указали значение для него.
Можете ли вы записать значение process.env.MONGO_URL
и посмотрите значение.
console.log(‘Connection url => ’, process.env.MONGO_URL);
Поскольку вы установили mongo db, по умолчанию он будет работать в mongodb://localhost:27017
url.
Вместо жесткого кодирования URL-адреса соединения, выможет рассмотреть возможность передачи таких значений как значения среды
Если у вас есть только одно значение среды, вы можете передать его вместе с установкой
MONGO_URL=mongodb://localhost:27017 node index.js
Если у вас более 2-3 средпеременная для приложения или несколько приложений, использующих переменную среды, могут быстро загрязнять вашу среду слишком многими значениями.можно использовать dotenv для их настройки, используя .env
file
Install dotenv .Создайте файл .env
в корне проекта и проигнорируйте его в .gitignore
.env
MONGO_URL=mongodb://localhost:27017
В вашемкод,
const dotenv = require('dotenv').config();
console.log(process.env.MONGO_URL); //you can access it straight way
Мы делаем это для строго отделенного конфига от кода , что поможет нам избежать проверки конфиденциальных данных в GitHub
Вы можете взглянуть на пример проекта , где я настроил вышеупомянутые детали.