1

Node.JS にオブジェクト配列があり、response.write(); を使用したいです。それを画面に表示すると、最初のオブジェクトを取得できますが、ループが停止し、最初のオブジェクトのみが出力されます。誰かが私を正しい方向に向けることができます...

db.collection('todo', function(err, collection){            
                    collection.find(function(err, cursor) {
                        cursor.each(function(err, doc) {
                            for(docs in doc){
                                if(docs == "_id"){

                                }else{
                                    var test = docs + " : " + doc[docs];


                                }

                            }
                            data = data.toString("utf8").replace("{{TEST}}", test);
                            response.write(data);
                            response.end(); 
                        })                    
                    });
                });
4

2 に答える 2

2

response.end()ループの外に移動します。それはそれを行う必要があります。

于 2012-10-22T23:53:36.243 に答える
1

response.end(data);に変更する必要がありますresponse.write(data);

これは、ユーザーに送られるストリームに非同期に追加されることに注意してください。

一度にすべてをダンプする場合は、次のことも試してください。

cursor.toArray(function (err, docs) { 
  /** run a for loop over each doc in docs **/
})
于 2012-10-22T22:55:17.497 に答える