Некруглый JSON, возвращающий круговую ошибку JSON - PullRequest
0 голосов
/ 20 марта 2019

Я отправляю запрос GET на маршрут, и он должен ответить JSON, но он возвращает с ошибкой Converting circular structure to JSON.Я попытался спроецировать поля, которые хотел, но это не предотвратило эту ошибку.Ни один из предметов, которые я возвращаю, не возвращает себя.И когда я возвращаю значение одного из объектов, он возвращается нормально.

Это код для маршрута:

router.get('/', auth.required, (req, res, next) => {
  const email = jwt.verify(req.cookies.dbmtg_jwt, 'secret', function (err, decoded) {
    if (err) {
      throw err
    }
    return decoded.email
  })
  const user = User.findOne({'email': email}, function (err, user) {
    if (err) {
      throw err
    }
    console.log(user)
  }).select({'_id': 0, 'hash': 0, 'salt': 0, '__v': 0})
  return res.json(user)
})

user JSON, который я пытаюсь вернутьне круговаяЭто { email: 'myemail@gmail.com', cardCollection: [], decks: [] }.Даже если я не проецирую нужные поля для ответа JSON (см. Ниже), я все равно получаю эту ошибку.

{ _id: 5c905ca89b61bb3f6f556d06,
  email: 'myemail@gmail.com',
  cardCollection: [],
  decks: [],
  salt: 'a3ff9ec1a7f76a018a7608c98f0be53e',
  hash: '62c2f3a1797be8b397d151e50b0d72d19355348c1f39006b841185d7e34fa63cb701d429d3417fe5c717db6305075916eab63fe3062fb16d730f9f3bf0c31a2a16d8313f1d733946666536f528449f61f529b0864fa2cce70e1496f02d93d0b5999c5bdbba432ddecf544ac240cfd66d9a6c4e9daad0b73dce482dd6d35cba81d201d90805920f50537508eee6f500b35ec3ebd158beb98e25f7d082b2df97f9ec954bd5455314c4191d4b60d78b5ab83d6a5c4c5d97e537ff9b2e38a5a2ee4a159beb0d2a0454cef3fca72b7233766782c41401ceb621e70cdb289c15b1efbc0ea83b7a0db4dd72507af46f9eb774d33026f03fe1f290c0f91d9c8a24d090ef69fbf22b03052c68798a016564c1cc14a6c8b9cd8a3752149b04e7caa08e9cb497601e467251a11bb8dc874c2b2afc7c56318a541560db851e6ee649b9c22e43eedf14d4feaede561ebeba1336cfeb5ee127c14e1ed7a32760875e2ccce0c7a481c9cccdfb1c1733c632c547615f5fdbc6817c191ae20a45bce21d6744490cc7a108b53350ede160e92b3777fcb148294a1ed31eb870fbd0336fc9b2a90f4b89432b72533711cef7ba258ac5083d565007973f14f555623ee693f3c0955e303b113afc018d9e9920bc18673bb2e2e9bee6f1769bb99adcfc3c4a3b13d172843f065ad7aa3067ec0a27bb7fa17684908e3c8d3c46ab0eee04c5479df0eead4fc6',
  __v: 0 }

1 Ответ

0 голосов
/ 20 марта 2019
  • const user не содержит фактического пользователя, который вернулся из базы данных
  • Вместо того, чтобы возвращать user из вызова на User.find(), попробуйте использовать user, который возвращается в обратном вызове function(err, user) {}

User.findOne({'email': email}, function (err, user) {
  if (err) {
    throw err
  } else {
    // return the JSON here
    return res.json(user);
  }
}).select({'_id': 0, 'hash': 0, 'salt': 0, '__v': 0});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...