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