[英]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 的新手,可能遗漏了一些东西
您的 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通信
它不能作为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);
});
请检查 MongoDB 服务是否处于活动状态并正在运行。 参考正在运行的服务
如果它在 MongoDB compass 或 MongoDB shell 上运行并且可用,并且如果您使用的节点版本>17.0.0
左右,它将给出错误。 所以请更改为稳定版本的节点。
要将 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.