Javascript 部署/生产时无法连接到MongoDB
我的mongoDB在本地连接很好,然后一旦我部署到heroku,连接URL就会变得未定义。我的根目录中有一个.env文件,还有一个.gitignore文件,其中包括.env。我需要mongo url保持私有,但我只能假设这就是它在生产中显示为未定义的原因 错误如下: MongooseError:Javascript 部署/生产时无法连接到MongoDB,javascript,mongodb,express,Javascript,Mongodb,Express,我的mongoDB在本地连接很好,然后一旦我部署到heroku,连接URL就会变得未定义。我的根目录中有一个.env文件,还有一个.gitignore文件,其中包括.env。我需要mongo url保持私有,但我只能假设这就是它在生产中显示为未定义的原因 错误如下: MongooseError:openUri()的uri参数必须是字符串,且为“未定义”。请确保mongoose.connect()或mongoose.createConnection()的第一个参数是字符串 这是我的要求: requ
openUri()
的uri
参数必须是字符串,且为“未定义”。请确保mongoose.connect()
或mongoose.createConnection()
的第一个参数是字符串
这是我的要求:
require(“dotenv”).config()
var url=process.env.MONGODB_URI
这是我的连接:
mongoose.connect(url,{
useNewUrlParser:true,
useUnifiedTopology:正确
}).catch(e=>{
控制台错误(e.message)
})
提前谢谢你的帮助 您需要做两件事,使.env可用于生产代码,它无法访问您的本地.env文件 第二,您的mongo是否正在进行生产?应用程序通过27017端口的平均可用性和可访问性?
不要说它正在本地计算机上运行。您需要在应用程序部署的位置设置变量。在本地主机上开发时使用的
.env
文件无法访问该文件。如果你部署到heroku,这里有一个简单的方法。如果它没有部署到heroku,您可以知道下一步要做什么才能使它工作 谢谢你,伙计。对于将来阅读本文的人,我将重要信息移到了.env中,放在gitignore中,将我的env变量添加到heroku中,然后将我的mongodb url设置为process.env.mongodb_URI。我还需要dotenv,然后立即调用config()。