在简单查询上将循环结构转换为json错误

时间:2015-09-14 01:42:41

标签: javascript node.js mongodb mongodb-query

我有一个非常简单的应用程序,现在允许您创建一个帐户,只需将文档添加到数据库。当我尝试查询信息并使用res.send()将其发回时,会出现错误并说converting circular structure to JSON。这是什么意思?文档中的所有对象都是字符串。没有任何花哨的事情发生。

这是它发生错误的路线:

var express = require('express');
var router = express.Router();
var cookieParser = require('cookie-parser');

/* GET users listing. */
router.get('/', function(req, res, next) {

//  res.send(req.params);
});

router.post('/', function(req, res, next) {
  console.log(req.body.nickname + " from the " + req.body.grade + " class registered.");

  db.collection('users').insert({email: req.body.email, password:     req.body.password, nickname: req.body.nickname, grade: req.body.grade}, function(err, result) {});

  res.cookie("fss-sched-account", req.body.email);
  res.cookie("fss-sched-password", req.body.password);

  console.log(db.collection('users').find({}));

  res.json(db.collection('users').find({}));
});

router.get('/nocookies', function(req, res, next) {
});

module.exports = router;

这是我所有代码的链接:Github

1 个答案:

答案 0 :(得分:1)

这意味着您试图从.find()而不是“结果”传递“光标”。你可能只想要:

db.collection('users').find({}).toArray(err,results) {
    if (err) throw err; // or handle somehow
    console.log(results);
    res.json(results);
})

.toArray()转换为数组以及执行查询的位置,返回实际可以使用的数据形式。