繁体   English   中英

连接 ECONNREFUSED 127.0.0.1:27017'

[英]connect ECONNREFUSED 127.0.0.1:27017'

我有那个代码:

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' }

我该如何改进? 我已经使用npm install mongoose --save in my directory

是的,有很多这样的问题,但这些都没有帮助我..我是 nodejs 的新手,可能遗漏了一些东西

当我在我的项目目录上执行node server时,我也面临同样的问题。 对我来说, MongoDB服务没有启动,这就是这个问题。

所以我不得不运行services.msc并激活服务。

在此处输入图像描述

之后,我能够运行我的命令。

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

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

现在 Mongodb 将连接

Mongodb 的状态指示为Running

在此处输入图像描述

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

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

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

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

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

$ mongod

然后一切正常

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

尝试这个:

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

也许一切都会好起来的!

如下:

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

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

这是问题所在:

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

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

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

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

在此处输入图像描述

在大多数情况下,您将收到错误 bcz 服务MongoDB 数据库服务器 (MongoDB)可能已停止。

只需启动要与数据库连接的服务在此处输入图像描述

它不能作为localhost工作,但 IP 地址工作127.0.0.1并解决了这个问题:

  // .connect("mongodb://localhost:27017/lofydb")

    const mongoose = require("mongoose");

    mongoose.connect("mongodb://127.0.0.1:27017/lofydb")
      // .connect("mongodb://127.0.0.1:27017")
    
      .then(() => {
        console.log("Connected to Database");
      })
      .catch((err) => {
        console.log("Not Connected to Database ERROR! ", err);
      });
  1. 请检查 MongoDB 服务是否处于活动状态并正在运行。 参考正在运行的服务

  2. 如果它在 MongoDB compass 或 MongoDB shell 上运行并且可用,并且如果您使用的节点版本>17.0.0左右,它将给出错误。 所以请更改为稳定版本的节点。

确保 MongdoDB 正在运行

要将 MongoDB 作为 macOS 服务运行,请运行:

酿造服务启动 mongodb-community@5.0

当你看到:

==> 成功启动mongodb-community (标签:homebrew.mxcl.mongodb-commu

或者在命令行输入,检查 mongo 服务。

蒙神

运行服务后,您可以轻松连接 mongdoDB localhost 或远程连接。

我遇到了同样的问题,这与我的 MongoDB 服务没有在本地运行有关。 确保您在此处尝试运行 MongoDB 服务的任何操作系统的所有正确安装步骤: https://www.mongodb.com/docs/install-community/community/community/administration

然后按照“运行 MongoDB 社区版”下运行服务的相应指南。 因此,例如,对于 macOS,您会这样做

brew services start mongodb-community@6.0

如果您想作为 macOS 服务运行,或者

mongod --config /opt/homebrew/etc/mongod.conf --fork

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

第一步:打开conf文件进行编辑。

sudo vim /etc/mongod.conf

第2步:找到端口并更改它。

net: port: 27017 -> 任何更改前的默认端口

更改端口后,我的问题解决了:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM