Атлас MongoDb не подключается к Heroku - PullRequest
1 голос
/ 18 июня 2020

Я внес в белый список все IP-адреса 0.0.0.0/0 в MongoDb Atlas.

Я установил переменную конфигурации MONGO_URI в Heroku (ключ конфигурации - MONGO_URI, а значение установлено правильно).

это моя база данных. js код

if (process.env.NODE_ENV !== 'production') { require('dotenv').config() }
const mongoose = require('mongoose')

const connectDB = async () => {
    const db = process.env.MONGO_URI
    try {
        await mongoose.connect(db, {
            useNewUrlParser: true,
            useCreateIndex: true,
            useFindAndModify: false,
            useUnifiedTopology: true
        })

        console.log('MongoDB Connected...')
    } catch (err) {
        console.error(err.message)
        // Exit process with failure
        process.exit(1)
    }
}

module.exports = connectDB

Кто-нибудь знает проблему здесь, в противном случае мое приложение работает отлично, оно просто не подключается к базе данных.

1 Ответ

1 голос
/ 18 июня 2020

По умолчанию process.env.NODE_ENV равно production на Heroku, поэтому он не будет использовать файл .env, даже если он находится в папке проекта.

Добавление пары значений ключа MONGO_URI и your mongodb connection string в Heroku должно сработать:

  1. войдите в Heroku
  2. выберите свое приложение
  3. щелкните вкладку настроек
  4. найдите раздел 'Config Vars'
  5. нажмите «Показать переменные конфигурации»
  6. добавить MONGO_URI как КЛЮЧ и your connection string(no quote) как ЗНАЧЕНИЕ
  7. нажмите кнопку добавления
  8. снова откройте приложение

Обновление: Я создал демонстрацию, используя указанный выше код, и развернул ее на Heroku, выполнив указанные выше действия, после подключения к моему репозиторию git. Работает нормально.

Живая демонстрация

Исходный код

Вы также можете проверить консоль узла, нажав More -> View logs на странице приложения Heroku (вверху справа).

...