«Тайм-аут запроса» H12 Ошибка Heroku, связывающая доступ к MongoDB Atlas - PullRequest
1 голос
/ 29 марта 2020

Эта проблема, кажется, довольно распространена, но я пробовал несколько вещей, и я все еще получаю эту ошибку.

Хорошо, поэтому я пытаюсь развернуть приложение на Heroku с моей БД на MongoDB Atlas, но когда я пытаюсь зарегистрироваться или войти 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 Config vars

Вот 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, поэтому, пожалуйста, будьте внимательны и присылайте мне свои отзывы, если хотите:)

1 Ответ

1 голос
/ 01 апреля 2020

Хорошо, это работает, я отвечаю на свой пост на случай, если у кого-то возникнет такая же проблема.

Я просто забыл добавить IP-адреса Heroku в белый список, чтобы они могли получить доступ к БД ...

...