.env中的 MONGO_URI在heroku中部署时不起作用



我试图在heroku上部署一个应用程序,但我不能如果我使用dotenv。这段代码不起作用:

mongoose.connect(process.env.MONGO_URI, { useNewUrlParser: true }, () => {
console.log("Connected to db successfully");
});

mongoose.connect("mongodb+srv://test:test@cluster0.j0you.mongodb.net/ecommerce?retryWrites=true&w=majority", { useNewUrlParser: true }, () => {
console.log("Connected to db successfully");
});

当我尝试使用dotenv时,heroku抛出这个错误:

MongooseError: The `uri` parameter to `openUri()` must be a string, got "undefined". Make sure the first parameter to `mongoose.connect()` or `mongoose.createConnection()` is a string.

我不得不去查看她的仪表盘>settings>配置vars,然后将键添加为MONGO_URI和mongodb给我的mongo url值

您需要确保两件事

  1. 转到heroku dashboard>settings>配置vars,然后将键添加为MONGO_URI和mongodb给我的mongo url值…该信息位于项目的.env文件中。你可能有另一个名字,如DATA_BASE_MONGO,只是要确保在配置变量中使用该名称和键。
  2. Heroku动态地为你的应用分配一个端口,所以你不能将端口设置为固定的数字。Heroku将端口添加到环境中,因此您可以从那里拖动它。将您的监听切换为:.listen(process.env.)端口|| 5000)听着(5000美元),一定要改。这样你的应用程序就可以运行了。