Как решить ошибку Express: TypeError: преобразование круговой структуры в JSON - PullRequest
0 голосов
/ 05 августа 2020

Я новичок в express и angular, пытающихся создать регистр и отобразить список зарегистрированных пользователей. Я использую функцию для регистрации пользователя и сохранения данных в man go db - выполняется успешно (я вижу зарегистрированных пользователей в mon go и работает в почтальоне). Теперь я хочу получить всех зарегистрированных пользователей с помощью другого пользователя api функции, но есть ошибка.

Мой код

const User = require('../models/user')

router.post('/register', (req, res) => {
    let userData = req.body
    let user = new User(userData)
    
    user.save((error, registeredUser) => {
       if (error){
          console.log(error)
       }
       else 
       {
          let payload= { subject: registeredUser._id}
          let token = jwt.sign(payload, 'secretkey')
          res.status(200).send({token}) 
       }
    })
})

получение пользовательской функции

router.get('/user', (req, res) => {
   let users = User.find()
   res.json(users)
})

Пользователь Схема Модель

const mongoose = require('mongoose')
const Schema = mongoose.Schema
const userSchema = new Schema({
   email: String,
   password: String
})
module.exports = mongoose.model('user', userSchema, 'Users')

--- ошибка ---

TypeError: Converting circular structure to JSON
--> starting at object with constructor 'NativeTopology'
|property 's' -> object with constructor 'Object'
|property 'sessionPool' -> object with constructor 'ServerSessionPool'
--- property 'topology' closes the circle
at JSON.stringify (
<anonymous>
)

1 Ответ

0 голосов
/ 12 августа 2020

вы делаете вызов базы данных, который будет асинхронной c операцией. Поэтому строка res. json (пользователи) не будет ждать ответа базы данных.

router.get('/user', (req, res) => {
 let users = User.find()
 res.json(users)
})

решение

router.get('/user', async (req, res) => {
 let users = await User.find({})
 res.json(users)
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...