私は Node で webapps の開発を始めているので、このテクノロジーについてはまったくの初心者です。
私はいくつかの例を実行し、それを実行することができました。
ただし、Mongodb を使用しようとしていますが、正しく実行できません。接続は機能しているようですが、find() メソッドを呼び出して localhost:3000/near (findAll ドキュメントを作成する URL) に移動すると、ブラウザーは約 30 分読み込みを行い、何も返されません。 ( ERR_EMPTY_RESPONSE )。
これは私のコードです:
app.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 自体がそれをやってくれると思っていました!