node.js - “请求超时”H12 Heroku 错误绑定访问 MongoDB Atlas
问题描述
这个问题似乎很常见,但我已经尝试了几件事,但我仍然得到这个错误。
好的,所以我正在尝试使用我在 MongoDB Atlas 上的数据库在 Heroku 上的应用程序上部署,但是当我尝试注册或登录 POST 请求时,我在 Heroku 日志中收到此消息:
2020-03-29T09:54:50.197717+00:00 heroku[router]: at=error code=H12 desc="Request timeout" method=POST path="/users/register" host=sleepy-beach-03876.herokuapp.com request_id=87810d90-3e72-4ff7-929e-77157f1b4a12 fwd="xxx.xxx.xxx.xxx" dyno=web.1 connect=0ms service=30001ms status=503 bytes=0 protocol=https
我试过的:
- 增加连接超时时间
- 仔细检查我的 IP 地址是否被列入白名单,它是
- 仔细检查 URI 是否正确,它似乎正确
- 使用 Heroku 配置变量
这是URI
mongoURI : 'mongodb+srv://xxx:xxxxxxxx@clusterftr-wrdqy.mongodb.net/test?retryWrites=true&w=majority'
我试过这个
mongoose.connect(db.mongoURI, {
useNewUrlParser: true,
useUnifiedTopology: true,
})
.then(() => console.log(`MongoDB connected... ${db.mongoURI}`))
.catch(err => console.log(err + db.mongoURI));
还有这个
const MongoClient = require('mongodb').MongoClient;
const uri = "mongodb+srv://xxx:xxxxxxxx@clusterftr-wrdqy.mongodb.net/test?retryWrites=true&w=majority";
const client = new MongoClient(uri, { useNewUrlParser: true });
client.connect(err => {
const collection = client.db("test").collection("users");
client.close();
});
请注意,这是我的第一个 StackOverflow 帖子,也是我的第一个 Node 项目,所以如果你愿意,请理解并给我一些反馈:)
解决方案
好吧,它有效,我回答我自己的帖子,以防有人遇到同样的问题。
我只是忘记在白名单中添加 Heroku IP,以便他们可以访问数据库......
推荐阅读
- sql - 在新列中显示行数据(透视?)
- google-apps-script - 使用 Apps 脚本将文件从一个文件夹复制到云端硬盘上的另一个文件夹
- python - pipenv 的问题
- javascript - Typescript 来自另一个 const 数组的项目数组(来自官方初学者教程)
- python - 游戏 | 每次我尝试运行它时它都会显示一个黑屏然后崩溃,即使它以前工作过
- javascript - 如何使用react js替换对象数组中的修改对象
- forms - 如何知道父表单中子表单的关闭事件
- arrays - php 与此数组编号 array(11) [0] => 1
- end-to-end-encryption - 如何在 EE2E 中读取来自另一台设备的消息
- linux - 遍历数组以在 Bash 中搜索多个元素