Estoy tratando de convertir los datos de mongoDB pasados por la cookie en mi lado del cliente desde mi servidor. Estoy usando Express et React.js.
Ciente:
export default class Profile extends React.Component { constructor(){ super(); this.state = {} } componentWillMount(){ console.log(JSON.stringify(cookie.load('user'))) } render(){ return ( <div> <h1>Profile</h1> </div> ) }La devolución de console.log:
"j:{\"_id\":\"58e622ac7144862dbb5722f1\",\"password\":\"paswdtest\",\"email\":\"test@test.com\",\"pseudo\":\"testname\",\"__v\":0}"Servidor:
const post = (req, res, next) => { if(req.body.pseudo && req.body.password) { User.authenticate(req.body.pseudo, req.body.password, (error, user) => { if(error || !user) { var error = new Error('Wrong email or password') error.status = 401; return next(error); } else { req.session.user = user; res.cookie('user', req.session.user) return res.redirect('/profile'); } }) } else { var error = new Error('Email and password are required'); error.status = 401; return next(error); } }Estoy tratando de convertir con parse y stringlify pero no funciona.
MongoDB no devuelve JSON, sino que devuelve JSON extendido llamado BSON .
Si sus necesidades son simples, entonces el enfoque más rápido puede ser simplemente convertir BSON a JSON en su código.
Para tu ejemplo esto sería
antes de
"j:{\"_id\":\"58e622ac7144862dbb5722f1\",\"password\":\"paswdtest\",\"email\":\"test@test.com\",\"pseudo\":\"testname\",\"__v\":0}"después
{"j":{"_id":"58e622ac7144862dbb5722f1","password":"paswdtest","email":"test@test.com","pseudo":"testname","__v":0}}