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 回答