Почему может не происходить подключение к базе данных на хостинге heroku?

Вообщем, в моём приложении используется удалённая база данных mongoDB. На localhost всё работает нормально, но после того, как я залил свой блог на heroku. Подключение к базе данных не происходит, и данные не загружаются. вот код файла, в котором используется база данных:
const express = require("express");
const router = express.Router();
const bodyParser = require("body-parser");
const urlencodedParser = bodyParser.urlencoded({extended: false});
const mongoose = require("mongoose");
const Schema = mongoose.Schema;
const postScheme = new Schema({
    title: String,
    text: String
});
const Post = mongoose.model("Post", postScheme);

let posts = [];

mongoose.connect("mongodb+srv://admin:<password>@cluster0-emcpv.mongodb.net/blog",
{ useNewUrlParser: true, useUnifiedTopology: true, autoIndex: false });

Post.find({}, (err, docs) => {
    posts = docs;
});

router.get("/", (req, res) => {
    res.render("index", {posts: posts});
});

router.get("/write", (req, res) => {
    res.render("write");
});

router.post("/write", urlencodedParser, (req, res) => {
    const title = req.body.title;
    const text = req.body.text;
    if(title === "" || text === "") {
        res.redirect("/");
    } else {
        const post = new Post({title, text});
        posts.push({title, text});
        post.save();
        res.redirect("/");
    }
});

router.get("/posts/:id", (req, res) => {
    const id = req.params.id - 1;
    res.render("post", {post: posts[id]});
});

module.exports = router;

В строке где идёт подключение пароль убрал.
Вот ещё файл package.json:
{
  "name": "blog",
  "version": "1.0.0",
  "description": "",
  "main": "app.js",
  "scripts": {
    "start": "node app.js"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "body-parser": "^1.19.0",
    "express": "^4.17.1",
    "mongoose": "^5.9.6",
    "pug": "^2.0.4"
  }
}
  • Вопрос задан
  • 241 просмотр
Пригласить эксперта
Ответы на вопрос 1
SecurityYourFingers
@SecurityYourFingers
I make other things, but i know that without your
короче,
1) heroku перестал поддерживать mongodb как встроенное решение:


2) heroku для приложений делает динамические IP и значит нельзя в облачном монго добавить в белый список адрес приложения.

в итоге, локально можно затестить, потому что можно свой IP можно в белый список добавить. Но облом, бесплатного решения я пока не вижу. Если кто прочитает, киньте рецептик
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы