连接ECONNREFUSED 127.0.0.1:27017'

时间:2016-04-04 10:32:18

标签: node.js mongodb

我有那段代码:

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:连接ECONNREFUSED   127.0.0.1:27017]名称:'MongoError'消息:'connect ECONNREFUSED 127.0.0.1:27017'}

我该如何改进?我已经在我的目录

中使用npm install mongoose --save安装了mongoose

是的,有几十个这样的问题,但这些都没有帮助我..我是nodejs的新手,可能遗漏了什么

10 个答案:

答案 0 :(得分:3)

您的mongodb服务可能已关闭。 运行sudo service mongod start以启动守护程序进程

答案 1 :(得分:2)

如果您在 Windows 中遇到此问题, 只需转到 mongodb 的安装程序 exe 应用程序 然后点击“修复” 这对我有用

答案 2 :(得分: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

...

然后节点yourserver.js

也许一切都会好起来的!

答案 3 :(得分:1)

我遇到了同样的问题,发现这是一个mongod问题。(我正在运行Ubuntu 16.04)。查看错误,找不到目录。添加目录后,我需要更改权限,最后将mongod服务设置为在启动时启动。

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

答案 4 :(得分:1)

运行 services.msc 并激活 Mongodb 服务。

现在Mongodb将连接

click here to view the image

Mongodb的状态表示为正在运行

答案 5 :(得分:1)

我知道这个问题很旧,但是遇到了类似的问题,上述解决方案对我不起作用,我使用的是Ubuntu 20.04 LTS。

我要做的只是使用以下命令运行mongo服务:

$ mongod

然后一切正常

答案 6 :(得分:0)

当我在项目目录中执行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

答案 7 :(得分:0)

问题出在这里

mongoose.connect('mongodb://localhost/multivision') 

mongodb和mongos实例的默认端口是27017。

mongoose.connect('mongodb://localhost:27017/multivision') 

还要确保mongod正在运行,以便您可以与mongodb通信

答案 8 :(得分:0)

如下所示:

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

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

答案 9 :(得分:0)

enter image description here

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

启动服务即可连接DB enter image description here