首页 > 解决方案 > Mongodb atlas + node.js 在本地工作,但在推送到 Heroku 时停止

问题描述

我在我的 node.js 网站上创建了一个帖子路由,允许用户申请工作。它在本地运行良好并连接到 mongodb atlas 但是当我将应用程序推送到 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}));

这是我运行heroku日志时的终端 在此处输入图像描述

标签: node.jsmongodbherokumongoose

解决方案


我看到 MongoNetworkError 正在发生,如果事情在本地运行良好,但在 Heroku 上却没有,那么 IP 白名单可能是问题所在。在我们进行任何连接之前,需要在 MongoDB Atlas 中将 IP 列入白名单。如果您不知道 IP(heroku),可以将其设置为 0.0.0.0/0

MongoDB Atlas 的 IP 白名单(在安全选项卡下)

我过去遇到过类似的问题,这对我有用。


推荐阅读