好的,所以我是一个完整的Node / MongoDB新手,我现在正在学习本教程:http://mongodb.github.io/node-mongodb-native/api-articles/nodekoarticle1.html。
这是我所拥有的代码
var MongoClient = require('mongoDB').MongoClient;
MongoClient.connect("mongodb://localhost:8888/exampleDb", function(err, db){
if( !err ){
console.log("We are connected");
} else console.log(err);
});
但是,当我运行节点/node/index.js我的控制台日志时:
[Error: connection closed]
我已经尝试禁用我的防火墙并添加自动重新连接:true,两者都不起作用。我似乎无法在网上找到问题,可能出现什么问题?
编辑:这就是我设置服务器的方式
var server = require("./server");
var router = require("./router");
// in router.js
function route(handle, pathname, response){
console.log("About to route a request for "+pathname);
if( typeof handle[pathname] === "function"){
handle[pathname](response);
} else {
console.log("404");
response.writeHead(404, {"Content-Type":"text/plain"});
response.write("404 not found");
response.end();
}
}
exports.route = route;
// in server.js
var http = require("http");
var url = require("url");
function start(route, handle){
function onRequest(request, response){
var pathname = url.parse(request.url).pathname;
route(handle, pathname, response);
}
http.createServer(onRequest).listen(8888);
}
exports.start = start;
server.start(router.route, handle);
答案 0 :(得分:0)
好的,你的错误很简单。默认情况下,mongoDB在端口27017上运行,在您的代码中,您尝试在8888端口上的mongod实例上进行连接。此端口用于节点项目,而不是MongoDB。
首先,您应该启动mongod实例。如果你在Ubuntu,你可以从这开始:
sudo service mongodb start
如果你在另一个平台上,并且mongodb路径在你的PATH环境中,你可以使用这个命令启动它:
mongod
通过以下方式更改连接uri:
var MongoClient = require('mongoDB').MongoClient;
MongoClient.connect("mongodb://localhost:27017/exampleDb", function(err, db){
if( !err ){
console.log("We are connected");
} else console.log(err);
});
答案 1 :(得分:-1)
Woops误报,我还没有启动mongod.exe。因此,对于遇到此错误并搜索Web的任何人:确保已安装mongodb并在installation / bin目录中运行mongod.exe可执行文件