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

converting circular structure to json error on simple query

本文关键字:转换 json 错误 结构 循环 简单 查询      更新时间:2023-09-26

我有一个非常简单的应用程序,现在允许您创建一个帐户,并将文档添加到数据库中。当我尝试查询信息并使用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

这意味着您正试图从.find()传递"光标"而不是"结果"。您可能只需要:

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

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