2014-12-11 67 views
0

我希望顯示存儲在我的mongodb中的每個文檔。我想下面的代碼簡單地得到collection.find(),並通過res.send顯示()Express.js collection.find()return Object

router.get('/index', function(req,res){ 
var db = req.db 
var collection = db.get('usercollection') 

var display = util.inspect(collection.find())); 
res.send(display); 
}); 

我希望它顯示存儲在MongoDB的實際文件。但相反,它顯示此對象格式:

{cold:{manager:{driver:[Object], helper:[Object], collection:[Object]..... 

是否有任何其他步驟需要顯示原始mongodb文檔?

+0

那平均堆兄弟 – Rafael 2014-12-11 05:07:24

回答

1

如果您使用的庫是official 10gen library,那麼您不能簡單地輸出collection.find()而不展開它。要做到這一點對於較小的數據集最簡單的方法是

collection.find().toArray(function(err, results) { 
    if (err) { 
     // do something error-y 
    } else { 
     res.send(results); 
    } 
}); 

如果您發佈更多的代碼,並與您正在使用的庫的標記你的問題,你就可以得到更有針對性的幫助。如果庫使用的是回報promise,這可能是你會怎麼放鬆吧:

collection.find().then(function(results){ 
    res.send(results); 
}).catch(function(err){ 
    console.error(err); 
}); 
+0

,我相信,你可以每次請求使用'res.send'只有一次。 – thefourtheye 2014-12-11 06:02:52

+0

謝謝!這正是我探索StackOverflow後所嘗試的。我有一個錯誤說「對象#沒有方法'toArray'似乎toArray不是默認方法嗎? – Taewan 2014-12-11 06:08:31

+0

我已經更新了我的答案,包括我最好的猜測如何處理'Promise'返回對象 – 2014-12-11 15:34:16

相關問題