2015-06-19 51 views
1

我是MEAN堆栈的新手。我正在尝试从MongoDB中检索文档列表。我已经使用Visual Studio 2013社区版来创建一个基本的Nodejs Express应用程序。 Visual Studio在根上创建app.js文件进行配置。我已经把下面的代码app.js这是有关的MongoDB:MongoDB和Express:类型错误:将圆形结构转换为JSON

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创建的,我创建了一个js文件将执行CRUD操作。我在此文件中下面的代码:

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; 

我类型错误:转换圆形结构,以JSON。

我想不使用任何模式。

请指教。

+2

'collection.find()'不返回结果。查看一些关于如何使用它的教程。 –

+0

谢谢,你有没有使用任何模式(猫鼬或任何其他)使用MEAN堆栈的教程的任何链接?我一直在尝试几天,但找不到任何。 – learner

回答

7

对于那些你,谁遇到了类似的问题,找到()不返回文档,我们需要使用指定者来检索文件。下面的代码做的诀窍:

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(); 
      }); 
     }); 
    }); 
}); 
+0

有没有办法在这之后将它作为JSON返回? – 221b

相关问题