MongoDB和Express:types错误:将循环结构转换为JSON

我是新的MEAN堆栈。 我正在尝试从MongoDB中检索文档列表。 我已经使用Visual Studio 2013社区版来创build基本的Nodejs Express应用程序。 Visual Studio在根上创buildapp.js文件进行configuration。 我已经把下面的代码放在app.js中,这与mongodb有关:

var mongo = require('myDB'); var db = new mongo.Db("myDB", new mongo.Server("localhost", "27017"), { safe: true }, { auto_reconnect: true }); // Make our db accessible to our router app.use(function (req, res, next) { req.db = db; next(); }); 

在visual studio创build的path文件夹中,我创build了一个将执行CRUD操作的js文件。 我在这个文件中有以下代码:

 var express = require('express'); var router = express.Router(); router.get('/myRecords', function (req, res) { var db = req.db; db.open(function (err, db) { if (err) console.log(err); else { var collection = db.collection('myCollection'); var dataToSend = collection.find(); res.send(dataToSend); } }) }); module.exports = router; 

我是types错误:将循环结构转换为JSON。

我正在尝试不使用任何架构。

请指教。

对于那些遇到类似问题的人,find()不返回文档,我们需要使用toArray来检索文档。 以下代码做了诀窍:

 router.get('/myRecords', function (req, res) { var db = req.db; db.open(function (err, db) { // <------everything wrapped inside this function db.collection('myCollection', function (err, collection) { collection.find().toArray(function (err, items) { res.send(items); db.close(); }); }); }); });