当前位置: 首页 > 知识库问答 >
问题:

Heroku连接MONGO地图集

彭成天
2023-03-14

我是编程新手,我正在学习《变得吝啬》这本书。不幸的是,关于MONGODB和HEROKU的部分使用了MLAB,我想使用AtlasMongoDB。所以,我连接数据库的代码是

const mongoose = require ('mongoose');
let dbURI = 'mongodb://localhost/Loc8r'; 
if (process.env.NODE_ENV === 'production') {dbURI = process.env.MONGODB_URI;
}

mongoose.connect(dbURI, { useNewUrlParser: true, useCreateIndex: true});

当我在本地启动代码声明过程时。环境。NODE\u ENV和MONGODB\u URI,应用程序与数据库连接良好(代码如下)

NODE_ENV=production MONGODB_URI='mongodb+srv://username:password@cluster0-jbcwd.azure.mongodb.net/Loc8r?retryWrites=true&w=majority' nodemon

但是,当我将应用程序部署到Heroku中时,我收到了以下错误

2019-10-03T21:34:53.253779+00:00 app[web.1]: /app/node_modules/mongoose/lib/connection.js:520
2019-10-03T21:34:53.253781+00:00 app[web.1]: throw new MongooseError('The `uri` parameter to `openUri()` must be a ' +
2019-10-03T21:34:53.253783+00:00 app[web.1]: ^
2019-10-03T21:34:53.257066+00:00 app[web.1]: Error [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.

我在Heroku中声明了这两个变量(node\u env等于production,mongodb\u uri等于mongodbsrv://username:password@群集0 jbcwd。蔚蓝色的mongodb。净/Loc8r?retryWrites=真)

你能帮帮我吗?我意识到,启动nodemon声明MONGODB\u URI时,如果没有任何引号,也会出现错误(见下文)。

NODE_ENV=production MONGODB_URI=mongodb+srv://username:password@cluster0-jbcwd.azure.mongodb.net/Loc8r?retryWrites=true&w=majority nodemon

可能是类似的原因导致了问题?我知道我很不擅长这个,所以请不要吝啬

共有1个答案

楚方伟
2023-03-14

抱歉,我找到了解决方案,但我想发布它,因为我看到许多人都有相同的问题。当您通过终端在Heroku上创建变量时,出于某种原因,它将不使用大写字母来写入密钥,这与上面的代码不同。登录heroku网站并以大写字母添加变量就成功了!

 类似资料:
  • 我使用kafka connect从mongo读取数据并将其写入kafka主题。 我正在使用 mongo kafka 源连接器。 我收到以下错误: 罐子里好像有一个小盒子。为了得到这个罐子,我使用了两种不同的方法,但是我得到了同样的错误。首先,我使用了下载的from:maven资源库,然后我从github repo中克隆了源代码,并自己构建了jar。我将jar推到plugins.path中,当我解压

  • 我尝试在mac中连接MongoDB时收到以下错误消息 MongoDB shell v3.4.9连接到:MongoDB://127.0.0.1:27017 2017-11-27T12:27:26.105+0530 W网络[thread1]连接到127.0.0.1:27017失败,in(轮询后检查套接字是否出错),原因:连接拒绝2017-11-27T12:27:26.141+0530 E查询[thre

  • 问题内容: 我在heroku上有一个使用游戏的应用程序。最长的时间它运行良好,但是最近我开始得到这个: 这是由于 现在这显然是一个连接泄漏,除了我使用的是JPA.em()。Play示例永远不会关闭这样获得的实体管理器。我尝试关闭它,但随后应用程序爆炸,说实体管理器已关闭。 有任何想法吗? 问题答案: 尝试使用BoneCP 0.8.0-rc1并使用以下配置:

  • 我正在AWS中使用Kafka MSK。因此,我们没有原生kafka连接到所有必需的连接器,例如confluent。实际上,我使用kakfa mongo连接器,我想找到一种方法,将kafka mongo连接器jar推送到kafka MSK集群实例上。jar将被推送到的路径是插件。所用连接器的属性中定义的路径。 有什么办法吗?

  • 我有一个带有和对象的。每次调用,我都会执行以下操作: 我不关闭,因为没有关闭方法。每次调用servlet时,mongo中使用的连接数都会增加: 什么是与mongo和morphia建立联系的正确方式?这种联系到底在哪里?谢谢

  • 我无法连接到heroku数据库,当我将我的应用程序部署到heroku时,我在日志中得到了以下内容: [localhost-startStop-1]警告org.springframework.web.context.support.annotationConfigWebApplicationContext-上下文初始化过程中遇到的异常-取消刷新尝试:org.springframework.beans