我正在跟踪在这里找到的教程。但是我收到以下错误:
Unable to connect to the mongoDB server. Error: { [MongoError: connect ECONNREFUSED 127.0.0.1:27017]
name: 'MongoError',
message: 'connect ECONNREFUSED 127.0.0.1:27017' }
我已使用此处返回的命令进行了验证:1:
ps -ef | grep mongod | grep -v grep | wc -l | tr -d ' '
我也跑了
ps -ef | grep mongod
并收到以下内容:
0 4165 418 0 Fri12pm ttys000 0:00.03 sudo mongod
501 6165 418 0 9:54am ttys000 0:00.00 grep mongod
我尝试运行的JavaScript文件如下:
var fs = require('fs');
var http = require("https");
var express = require('express');
var app = express();
var path = require('path');
var http = require("http");
var url = require("url");
var req = require('request')
var pem = require('pem');
var cors = require("cors");
var mongodb = require('mongodb').MongoClient;
var url = 'mongodb://127.0.0.1:27017/Rewards';
// Use connect method to connect to the Server
mongodb.connect(url, function (err, db) {
if (err) {
console.log('Unable to connect to the mongoDB server. Error:', err);
} else {
//HURRAY!! We are connected. :)
console.log('Connection established to', url);
// do some work here with the database.
//Close connection
db.close();
}
});
app.use(function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
next();
});
app.use(express.static(path.join(__dirname, '../')));
app.listen(process.env.PORT || 8080);
app.options('*', cors());
app.all('/*', function (req, res, next) {
res.header("Access-Control-Allow-Origin", "http://localhost:8080");
res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE');
res.header("Access-Control-Allow-Headers", "X-Requested-With, Content-Type");
next();
});
app.get('/', function (req, res) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
res.writeHead(200, {'Content-Type': 'text/plain'});
contents = fs.readFileSync("sliderImages.json", "utf8");
console.log(path.join(__dirname, '/sliderImages.json'));
res.end(contents);
});
我尝试过的事情:
我对Node JS和Mongo DB相当陌生,因此尝试调试它有点困难。我已经尝试了其他相关文章,无论是否在StackOverflow上都进行了很多尝试,但是似乎无法弄清楚为什么我会收到此错误。
当我阅读Mongo DB要求它们时,确实安装了以下组件:
也 :
我正在发布我的代码;也许一个更了解这些的更好的开发人员可以向我解释到底发生了什么以及为什么会出现此问题。我已经从一个来源阅读过,由于一些关键问题,例如不关闭数据库连接,没有数据库,Mongo无法运行以及其他一些问题,我找不到该链接的发生。
进入蒙哥德:
2016-05-31T11:18:44.936-0400 I CONTROL [initandlisten] MongoDB starting : pid=10385 port=27017 dbpath=/data/db 64-bit host=RBCs-MacBook- Pro-3.local
2016-05-31T11:18:44.936-0400 I CONTROL [initandlisten] db version v3.2.6
2016-05-31T11:18:44.936-0400 I CONTROL [initandlisten] git version: 05552b562c7a0b3143a729aaa0838e558dc49b25
2016-05-31T11:18:44.937-0400 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.0.2h 3 May 2016
2016-05-31T11:18:44.937-0400 I CONTROL [initandlisten] allocator: system
2016-05-31T11:18:44.937-0400 I CONTROL [initandlisten] modules: none
2016-05-31T11:18:44.937-0400 I CONTROL [initandlisten] build environment:
2016-05-31T11:18:44.937-0400 I CONTROL [initandlisten] distarch: x86_64
2016-05-31T11:18:44.937-0400 I CONTROL [initandlisten] target_arch: x86_64
2016-05-31T11:18:44.937-0400 I CONTROL [initandlisten] options: {}
2016-05-31T11:18:44.937-0400 I - [initandlisten] Detected data files in /data/db created by the 'wiredTiger' storage engine, so setting the active storage engine to 'wiredTiger'.
2016-05-31T11:18:44.937-0400 W - [initandlisten] Detected unclean shutdown - /data/db/mongod.lock is not empty.
2016-05-31T11:18:44.937-0400 I STORAGE [initandlisten] exception in initAndListen: 98 Unable to create/open lock file: /data/db/mongod.lock errno:13 Permission denied Is a mongod instance already running?, terminating
2016-05-31T11:18:44.937-0400 I CONTROL [initandlisten] dbexit: rc: 100
您对NPM上可用的Mongodb驱动程序和可安装在mongodb.com上的Mongodb服务有些困惑
您在其网站上安装的mongodb服务用于创建mongodb实例,该实例实际上将保留并存储您的数据记录。如果您具有RDBMS的背景,则与具有localdb / expressdb的背景相同。
通过brew软件包管理器安装他们提供的mongodb服务-与NPM类似,但支持不同的库。安装BREW第一,然后按照说明MongoDB的网站上有位于有联系http://brew.sh/。
一旦安装了MongoDB实例并设置了路径变量,就可以在打开任何终端窗口之后运行mongodb命令和mongo命令。
然后,这将启动您的mongodb服务
brew services start mongodb
然后,这将结束您的mongodb服务
brew services end mongodb
从NPM安装的mongodb只是一个公共api /驱动程序,可让您与已安装的服务进行交互。连接节点项目时,在运行节点项目时必须打开一个正在运行mongodb的终端。
注意:(关于已安装的软件包。)如果您使用mongodb,则不需要mongoose-mongoose是在mongodb之上构建的,该mongodb会强制执行架构事务,并且体积更大。我建议在添加另一层学习之前先坚持使用mongodb。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句