Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 部署/生产时无法连接到MongoDB_Javascript_Mongodb_Express - Fatal编程技术网

Javascript 部署/生产时无法连接到MongoDB

Javascript 部署/生产时无法连接到MongoDB,javascript,mongodb,express,Javascript,Mongodb,Express,我的mongoDB在本地连接很好,然后一旦我部署到heroku,连接URL就会变得未定义。我的根目录中有一个.env文件,还有一个.gitignore文件,其中包括.env。我需要mongo url保持私有,但我只能假设这就是它在生产中显示为未定义的原因 错误如下: MongooseError:openUri()的uri参数必须是字符串,且为“未定义”。请确保mongoose.connect()或mongoose.createConnection()的第一个参数是字符串 这是我的要求: requ

我的mongoDB在本地连接很好,然后一旦我部署到heroku,连接URL就会变得未定义。我的根目录中有一个.env文件,还有一个.gitignore文件,其中包括.env。我需要mongo url保持私有,但我只能假设这就是它在生产中显示为未定义的原因

错误如下: MongooseError:
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()。