我有那段代码:
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的新手,可能遗漏了什么
答案 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)
答案 5 :(得分:1)
我知道这个问题很旧,但是遇到了类似的问题,上述解决方案对我不起作用,我使用的是Ubuntu 20.04 LTS。
我要做的只是使用以下命令运行mongo服务:
$ mongod
然后一切正常
答案 6 :(得分:0)
当我在项目目录中执行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
答案 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)