NodeJS的MongoDB连接错误
Posted
技术标签:
【中文标题】NodeJS的MongoDB连接错误【英文标题】:MongoDB Connection Error with NodeJS 【发布时间】:2015-10-15 17:16:05 【问题描述】:我目前正在尝试使用 MongoDB、Express、Swig 和 NodeJS 的简单 Hello World 应用程序
使用最新的节点和其他依赖项。
Chrome 46.0(64 位)。 Mac OS X 10.9.5
下面是我的 app.js 代码
var express = require('express'),
app = express(),
cons = require('consolidate'),
MongoClient = require('mongodb').MongoClient,
Server = require('mongodb').Server;
app.engine('html', cons.swig);
app.set('view engine', 'html');
app.set('views', __dirname + '/views');
var mongoclient = new MongoClient(new Server("localhost", 27017, 'native_parser':false));
var db = mongoclient.db('course');
app.get('/', function(req, res)
// Find one document in our collection
db.collection('hello_mongo_express').findOne(, function(err, doc)
if(err) throw err;
res.render('hello', doc);
);
);
app.get('*', function(req, res)
res.send('Page Not Found', 404);
);
mongoclient.open(function(err, mongoclient)
if(err) throw err;
app.listen(8080);
console.log('Express server started on port 8080');
);
以下是我在 node app.js 时遇到的错误:
AMAC02PC0PHG3QP:6_hello_world_express_swig_mongodb macadmin$ node app.js
Failed to load c++ bson extension, using pure JS version
/Users/macadmin/Desktop/NodeJS_MongoDB/6_hello_world_express_swig_mongodb/app.js:31
if(err) throw err;
^
Error: failed to connect to [localhost:27017]
at null.<anonymous> (/Users/macadmin/Desktop/NodeJS_MongoDB/6_hello_world_express_swig_mongodb/node_modules/mongodb/lib/mongodb/connection/server.js:553:25)
at emitThree (events.js:97:13)
at emit (events.js:175:7)
at null.<anonymous> (/Users/macadmin/Desktop/NodeJS_MongoDB/6_hello_world_express_swig_mongodb/node_modules/mongodb/lib/mongodb/connection/connection_pool.js:140:15)
at emitTwo (events.js:87:13)
at emit (events.js:172:7)
at Socket.<anonymous> (/Users/macadmin/Desktop/NodeJS_MongoDB/6_hello_world_express_swig_mongodb/node_modules/mongodb/lib/mongodb/connection/connection.js:512:10)
at emitOne (events.js:77:13)
at Socket.emit (events.js:169:7)
at emitErrorNT (net.js:1250:8)
有些地方写的是 127.0.0.1 而不是本地主机。
【问题讨论】:
【参考方案1】:试试
sudo npm rebuild
在初始设置期间,某些软件包可能未正确安装。确保端口27017
未被其他进程使用。
【讨论】:
【参考方案2】:bson 模块可能没有正确安装。
试试 npm install -g node-gyp
然后
npm 更新
【讨论】:
万一,你确定你的 Mongo 服务器正在运行吗?如果你执行“sudo mongo”,你能连接到你本地的 Mongo 服务器吗? 是的。那是我做的第一件事:)以上是关于NodeJS的MongoDB连接错误的主要内容,如果未能解决你的问题,请参考以下文章
将 MongoDB 与 nodejs 连接时出现 ReplicaSetNoPrimary 和 MongoServerSelectionError 错误
Node.js 和 MongoDB Atlas Mongoose 连接错误