當我在我的本地計算機上運行它并且沒有遇到任何問題時,我在將它部署到 Heroku 時遇到了這個錯誤。我沒有完全理解原因。
MongoParseError URI malformed, cannot be parsed
我只是在 Heroku 上得到這個。另外,我在 server.js 端的檔案如下。
const dotenv = require("dotenv");
dotenv.config({ path: "./.env" });
const app = require("./app");
const DB = process.env.DATABASE.replace(
"<PASSWORD>",
process.env.DATABASE_PASSWORD
);
console.log(DB);
mongoose
.connect(DB, {
auth: {
user: process.env.MONGO_DB_USER,
password: process.env.MONGO_DB_PASSWORD,
},
useNewUrlParser: true,
useCreateIndex: true,
useFindAndModify: false,
})
.then(() => console.log("DB connection successful!"));
“貓鼬”:“^5.13.14”,“貓鼬國際”:“^3.3.0”,“dotenv”:“^16.0.3”,
我的 .env 檔案包含 MongoDB URL 和密碼。這就是為什么我不分享。在本地也很好用。但在部署中存在問題。
uj5u.com熱心網友回復:
如果您確定您的環境變數相同,則可能與 ip 有關。嘗試在 Atlas Network Access 中添加 0.0.0.0/0 IP 地址。如果你已經有這個IP,那么洗掉并重新添加。之后重啟 Heroku 中的所有測功機。(在右上角的下拉選單中)
uj5u.com熱心網友回復:
檢查您的服務器 dotenv 值。
在云環境中,.env 檔案可能不同。
你能檢查本地 process.env 和 Heroku 的 process.env 嗎?
uj5u.com熱心網友回復:
看來你的 mongoDB URI 有錯誤現在我不知道你的 URI 是什么,它是 .env 檔案,但我可以給你一些建議
1-首先你需要用這個替換你代碼的前兩行
require('dotenv').config();
2- 在您的 .env 檔案中,您需要創建一個名為
MONGODB_URI=mongodb srv://[username:password@]host[/[database][?options]]
無論您的密碼和用戶名是什么,只需在 URI 中填寫即可
最后,您需要更改連接字串,您的檔案應如下所示
require('dotenv').config();
const app = require("./app");
mongoose
.connect(process.env.MONGODB_URI)
.then(() => {
console.log("Connection Successfull");
})
.catch((error) => {
console.log("Connection Unsuccessfull");
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/534929.html
上一篇:優化聚合管道
下一篇:SQL2008中的回圈
