"Request timeout" H12 Heroku 尝试访问 MongoDB Atlas 时出错
"Request timeout" H12 Heroku error tying to access 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();
});
请注意,这是我的第一个 Whosebug post 和我的第一个 Node 项目之一,所以如果你愿意,请理解并给我一些反馈:)
好的,我会自己回答 post 以防有人遇到同样的问题。
我只是忘了在白名单中添加 Heroku IP,这样他们就可以访问数据库了...
不知道这有什么关系,但我遇到了 H12 - Request Timeout
错误。很可能是因为我的 .env
变量在 Heroku 中无法访问。
在我的应用程序的设置菜单中,我将它们添加到 Config Vars 部分,现在它已连接。
我重新启动了测功机,它对我有用
Please Check this Heroku Application Image
这个问题似乎很常见,但我已经尝试了几种方法,但仍然出现此错误。
好的,所以我正在尝试使用 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();
});
请注意,这是我的第一个 Whosebug post 和我的第一个 Node 项目之一,所以如果你愿意,请理解并给我一些反馈:)
好的,我会自己回答 post 以防有人遇到同样的问题。
我只是忘了在白名单中添加 Heroku IP,这样他们就可以访问数据库了...
不知道这有什么关系,但我遇到了 H12 - Request Timeout
错误。很可能是因为我的 .env
变量在 Heroku 中无法访问。
在我的应用程序的设置菜单中,我将它们添加到 Config Vars 部分,现在它已连接。
我重新启动了测功机,它对我有用 Please Check this Heroku Application Image