Я заранее прошу прощения за неопределенность, но я не имею ни малейшего понятия, какую информацию размещать здесь.
Я разрабатывал свой собственный блог, используя Heroku для его развертывания и MongoDB в качестве базы данных. Когда я запускаю сайт локально, все работает отлично. Составлять блоги, публиковать их и просматривать их. Однако когда я захожу в веб-приложение, развернутое на Heroku, я могу загрузить пустую домашнюю страницу или страницу создания. Но как только я захожу на страницу блога или хочу опубликовать сообщение, оно вылетает.
Оба этих действия взаимодействуют с MongoDB, поэтому я могу, по крайней мере, предположить, что проблема возникает при подключении к Mongo. Развернутое веб-приложение находится здесь .
При попытке посетить страницу блога с отображением всех сообщений, я получаю много таких сообщений в консоли Heroku, пока не произойдет сбой через 30 секунд:
at=error code=H12 desc="Request timeout" method=GET path="/blog"
Когда я пытаюсь опубликовать новое сообщение, я получаю это:
at=error code=H12 desc="Request timeout" method=POST path="/compose"
Есть предложения?
РЕДАКТИРОВАТЬ:
Вот какЯ подключаюсь с помощью Mongoose (MYUSERNAME и MYPASSWORD есть только в примере, в реальном проекте они действительно есть):
const express = require('express');
const app = express();
const mongoose = require('mongoose');
let port = process.env.PORT;
if (port == null || port == "") {
port = 3000;
}
app.listen(port, (req, res) => {
console.log("Server started listening to port " + port);
});
mongoose.connect("mongodb+srv://MYUSERNAME:MYPASSWORD@coded-by-tom-jk5zo.mongodb.net/blogDB", { useNewUrlParser: true, useUnifiedTopology: true });
let blogDB = mongoose.connection;
blogDB.on('error', console.error.bind(console, 'connection error:'));
blogDB.once('open', function() {
console.log("Connection to database succesfull.");
});
app.get("/blog", (req, res) => {
Post.find({}, async (err, posts) => {
await res.render("blog", {
posts: posts.reverse()
});
});
});