连接失败,无法连接到127.0.0.1:27017。涉及IT技术。

5
我有这段代码:
var express = require('express'),
    stylus = require('stylus'),
    logger = require('morgan'),
    bodyParser = require('body-parser'),
    mongoose = require('mongoose');

var env = process.env.NODE_ENV = process.env.NODE_ENV || 'development';

var app = express();

function compile(str, path){
    return stylus(str).set('filename', path);
}

app.set('views', __dirname + '/server/views');
app.set('view engine', 'jade');
app.use(logger('dev'));
app.use(bodyParser.urlencoded({ extended: true }));
app.use(stylus.middleware(
        {
            src: __dirname + '/public',
            compile: compile
        }
    ));
app.use(express.static(__dirname + '/public'));

mongoose.connect('mongodb://localhost/multivision');
var db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error..'));
db.once('open', function callback(){
    console.log('multivision db opened');
});

app.get('/partials/:partialPath', function(req, res){
    res.render('partials/' + req.params.partialPath);
});

app.get('*', function(req, res) {
  res.render('index');
});

var port = 3131;
app.listen(port);
console.log('Listening on port ' + port + '...');

但是当我尝试使用nodemon server.js时,它会抛出一个错误:

连接错误.. {[MongoError:connect ECONNREFUSED 127.0.0.1:27017] name:'MongoError' message:'connect ECONNREFUSED 127.0.0.1:27017'}

我应该怎么做才能解决问题?我已经在我的目录下安装了mongoose,使用命令npm install mongoose --save
是的,有很多类似这样的问题,但没有一个对我有帮助。我是nodejs的新手,可能是缺少某些东西。

1
MongoDB没有运行,或者没有在27017端口上运行... - Roger Lipscombe
MongoDB运行在同一主机上吗?27017端口是默认的MongoDB端口,但似乎那里没有可用的MongoDB。 - TeTeT
我能做什么?我在Windows上。 - gsiradze
我正在学习这个教程 https://www.pluralsight.com/courses/building-angularjs-nodejs-apps-mean,他还没有做任何事情来运行mongodb。只是安装了它,然后使用`nodemon server.js`命令。 - gsiradze
http://stackoverflow.com/questions/35515174/error-in-running-a-node-js-file - SiddAjmera
嗯,只有mongod。我一直在尝试nodemon mongod等等。这花了大约30-45分钟。非常感谢伙计们。 - gsiradze
14个回答

12

当我在项目目录下执行node server命令时,我也面临着同样的问题。对我来说,MongoDB服务没有启动,这导致了这个问题。

所以我需要运行services.msc并激活该服务。

enter image description here

之后我就能成功运行我的命令了。

D:\SVenu\MyApp>node server
Saving User
App is listening on port: 3000
Already Exist
Already Exist
Already Exist
Already Exist
Done save

11

运行 services.msc 并启动 Mongodb 服务。

现在 Mongodb 将会连接。

Mongodb 的状态将会显示为正在运行

输入图像描述


5

我也遇到了同样的问题,发现这是一个mongod问题。(我在运行Ubuntu 16.04系统)。浏览错误日志后发现缺少了一个目录。添加了该目录后,我需要更改权限,最后将mongod服务设置为开机启动。

$ sudo mkdir -p /data/db
$ sudo chown -R $USER /data/db
$ sudo systemctl enable mongod.service

我在一个自定义的Docker容器中遇到了这个问题,添加了chown -R $USER /data/db之后它就解决了!谢谢! - Lucas Abbade

4

您的mongodb服务可能已经停止运行。 运行sudo service mongod start以启动守护进程。


2

如果您在使用Windows时遇到了这个问题,可以前往MongoDB的安装程序exe应用中心,然后点击“修复”按钮,这对我很有效。


2

我知道这个问题很旧,但我遇到了一个类似的问题,上面的解决方案对我没有用,我正在使用Ubuntu 20.04 LTS。

为了让它工作,我只需使用以下命令运行mongo服务:

$ mongod

然后一切工作正常


1

试试这个:

mongod.exe --dbpath c:\data\db

c:\data\db 是你放置数据库的地方。

当你看到类似这样的东西时:

2016-08-18T10:22:31.020+0800 I CONTROL  [main] Hotfix KB2731284 or later update is not installed, will zero-out data files
2016-08-18T10:22:31.022+0800 I CONTROL  [initandlisten] MongoDB starting : pid=4356 port=27017 dbpath=c:\data\db 64-bit host=sevencai-PC0
2016-08-18T10:22:31.022+0800 I CONTROL  [initandlisten] targetMinOS: Windows 7/Windows Server 2008 R2
2016-08-18T10:22:31.023+0800 I CONTROL  [initandlisten] db version v3.2.8
2016-08-18T10:22:31.023+0800 I CONTROL  [initandlisten] git version: ed70e33130c977bda0024c125b56d159573dbaf0

......

然后运行 node yourserver.js

也许一切都会很好!


1

请按照以下步骤操作:

=> 运行services.msc并启动Mondodb服务器

将文件保存在节点项目中,您就可以看到服务器已连接!


请不要将“有同样的问题”作为答案发布。请阅读tour如何撰写好的答案? - Tomer Shetah

0

我遇到了同样的问题,原因是我的 MongoDB 服务没有在本地运行。请确保您按照所用操作系统的正确安装步骤来运行 MongoDB 服务:https://www.mongodb.com/docs/manual/administration/install-community/

然后根据“运行 MongoDB 社区版”的指南来运行该服务。例如,在 macOS 上,您需要执行以下步骤:

brew services start mongodb-community@6.0

如果您想要作为macOS服务运行,或者
mongod --config /opt/homebrew/etc/mongod.conf --fork

如果您想在 Apple M1 处理器上手动运行后台服务。我分享的同一页还有一些命令,您可以运行这些命令来验证 MongoDB 进程是否正在运行。


0

enter image description here

在大多数情况下,您会收到错误提示,因为服务MongoDB数据库服务器(MongoDB)可能已停止。

只需启动服务即可连接到数据库 输入图像描述


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接