Javascript Mongodb无法连接到服务器错误

Javascript Mongodb无法连接到服务器错误,javascript,node.js,mongodb,express,Javascript,Node.js,Mongodb,Express,运行“nodemon index.js”后,我发现我的应用程序无法连接到mongo时出错: 我在终点站启动了mongod 这个问题发生在我家的网络上,但如果我去街上的咖啡店,它就会连接起来。我读过一些关于防火墙导致问题和IP地址的文章,并尽我所知调整了这两件事,但我似乎仍然无法解决这个问题 关于如何解决这个问题,您有什么见解吗?首先,请检查您的mongodb服务是否正常运行 您还可以将localhost替换为127.0.0.1,如下所示: // connect to database mongo

运行“nodemon index.js”后,我发现我的应用程序无法连接到mongo时出错:

我在终点站启动了mongod

这个问题发生在我家的网络上,但如果我去街上的咖啡店,它就会连接起来。我读过一些关于防火墙导致问题和IP地址的文章,并尽我所知调整了这两件事,但我似乎仍然无法解决这个问题


关于如何解决这个问题,您有什么见解吗?

首先,请检查您的mongodb服务是否正常运行

您还可以将localhost替换为127.0.0.1,如下所示:

// connect to database
mongoose.connect('mongodb://127.0.0.1/todo-api', { useNewUrlParser: true});
const db = mongoose.connection;
db.on('error', console.error.bind(console, 'MongoDB connection error:'));
db.once('open', function() {
  console.log(`MongoDB connected!`);
});
编辑:我找到了表单mongoose文档:

MongoDB副本集依赖于能够可靠地计算出每个成员的域名。在Linux和OSX上,MongoDB服务器使用
hostname
命令的输出来计算要向副本集报告的域名。如果连接到运行在将主机名报告为本地主机的机器上的远程MongoDB副本集,则可能会导致错误:

如果遇到类似错误,请使用mongo shell连接到副本集,并运行
rs.conf()
命令检查每个副本集成员的主机名


你的数据库正在运行吗??终端中
服务mongod status
的输出是什么?这很有效,非常感谢!有什么见解可以解释为什么这会给我带来问题吗?旁注:这对node和nodemon都有效
let mongoose = require('mongoose');
let dbUrl = 'mongodb://localhost/todo-api';
mongoose.set('debug', true);

mongoose.Promise = Promise;

mongoose.connect(dbUrl, { useNewUrlParser: true }).then(() => {
  console.log("Database connection is active");
}).catch(err => {
  console.log(err);
});

module.exports.Todo = require('./todo');
// connect to database
mongoose.connect('mongodb://127.0.0.1/todo-api', { useNewUrlParser: true});
const db = mongoose.connection;
db.on('error', console.error.bind(console, 'MongoDB connection error:'));
db.once('open', function() {
  console.log(`MongoDB connected!`);
});
// Can get this error even if your connection string doesn't include
// `localhost` if `rs.conf()` reports that one replica set member has
// `localhost` as its host name.
failed to connect to server [localhost:27017] on first connect