我正在使用 Node 开始 webapps 开发,所以我对这项技术很陌生。
我已经做了几个例子并设法让它运行。
但是,现在我正在尝试使用 Mongodb,但无法使其正常运行。似乎连接正在工作,但是当我调用 find() 方法并转到 localhost:3000/near (这是创建 findAll 文档的 url)时,浏览器花费了大约半分钟的时间加载并完成返回任何内容( ERR_EMPTY_RESPONSE )。
这是我的代码:
应用程序.js
app.get('/near', function(req, res){
server.findAll( function(error,docs){
res.render('near', {
title: 'Cerca tuyo!',
places:docs
});
})
});
这是我的 Server.js
//constructor
AppServer = function(host, port) {
this.db= new Db('node-mongo-places', new Server(host, port, {safe: false}, {auto_reconnect: true}, {}));
this.db.open(function(){});
};
//Devuelve la colección de "places"
AppServer.prototype.getCollection= function(callback) {
this.db.collection('places', function(error, places_collection) {
if( error ) callback(error);
else callback(null, places_collection);
});
};
//Devuelve todos los contenidos de la DB places
AppServer.prototype.findAll = function(callback) {
this.getCollection(function(error, places_collection) {
if( error ) callback(error)
else {
places_collection.find().toArray(function(error, results) {
if( error ) callback(error)
else callback(null, results)
});
}
});
};
我已经调试了编写 console.log() 的代码,它似乎没有到达回调函数places_collection.find().toArray(function(error, results) {
知道为什么服务器不返回任何东西吗?
!!!编辑:
我找到了一些代码来测试与 mongodb 的连接是否正常,它说它不是:[Error: failed to connect to [localhost:27017]]
所以问题出在连接上。我应该先运行 mongodb 吗?我认为 app.js 本身会为我做到这一点!