簡體   English   中英

MongoDb Atlas 未連接到 Heroku

[英]MongoDb Atlas not connecting to Heroku

我已將 MongoDb Atlas 中的所有 IP 0.0.0.0/0 列入白名單。

我在 Heroku 中設置了 MONGO_URI 配置變量(配置鍵是 MONGO_URI 並且值設置正確)。

這是我的 db.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

任何人都知道這里的問題,否則我的應用程序可以完美運行,只是無法連接到數據庫。

默認情況下process.env.NODE_ENV是 Heroku 上的production ,所以它不會使用 .env 文件,即使它在項目文件夾下。

在 Heroku 中添加MONGO_URIyour mongodb connection string鍵值對應該可以解決問題:

  1. 登錄 Heroku
  2. select 您的應用程序
  3. 單擊設置選項卡
  4. 找到“配置變量”部分
  5. 單擊“顯示配置變量”
  6. MONGO_URI添加為 KEY 並將your connection string(no quote)添加為 VALUE
  7. 點擊添加按鈕
  8. 再次打開您的應用

更新:我使用您的上述代碼創建了一個演示,並在將其連接到我的 git 存儲庫后按照上述步驟部署在 Heroku 上。 它工作正常。

現場演示

源代碼

您還可以通過單擊 Heroku 應用頁面(右上角)中的More -> View logs來檢查節點控制台。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM