Mongodb atlas + node.js работает локально, но останавливается при выталкивании в Heroku - PullRequest
0 голосов
/ 29 марта 2019

Я создал почтовый маршрут на своем сайте node.js, который позволяет пользователям подавать заявку на работу. Он прекрасно работал локально и подключался к атласу mongodb, но когда я отправил приложение в Heroku и попытался отправить форму для заявления о приеме на работу, время моего сайта истекло. Я довольно новичок в этом и не знаю, что делать. Спасибо

Вот мой код

var express = require('express');
var mongoose = require('mongoose');
var bodyParser = require('body-parser');
var Applicant = require('./models/applicants');
var sendAppliedEmail = require('./mail/index.js');

var app = express();
app.set('view engine', 'ejs');
app.use(express.static(__dirname + "/public"));
app.use(express.static(__dirname + '/js'));
var port = process.env.PORT || 3000;

mongoose.connect('mongodb+srv://klaurtar:************@cluster0-nakj7.mongodb.net/test?retryWrites=true', {useNewUrlParser: true});
app.use(bodyParser.urlencoded({extended: true}));

вот мой терминал, когда я запускаю логи герою enter image description here

Ответы [ 2 ]

4 голосов
/ 29 марта 2019

Я вижу, что происходит ошибка MongoNetworkError, и если все работает нормально на локальном, а не на Heroku, то может быть проблема с белым списком IP.IP-адрес должен быть внесен в белый список в MongoDB Atlas, прежде чем мы начнем устанавливать какие-либо соединения.Если вы не знаете IP (heroku), вы можете указать его как 0.0.0.0/0

IP whiltelisting at MongoDB Atlas (under security tab)

Я сталкивался с подобной проблемой в прошломи это сработало для меня.

1 голос
/ 29 марта 2019

Я внес свой белый список в IP с атласом mongodb и обновил свой код, чтобы сохранить URI как переменную, и теперь он работает в производстве Heroku.Вот мой код, который заработал.

var uri = "mongodb+srv://klaurtar:************@cluster0-nakj7.mongodb.net/test?

retryWrites=true";


mongoose.connect(uri, {useNewUrlParser: true});
var db = mongoose.connection;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...