2017-04-07 2 views
0

클라이언트 측에서 mongoDB 데이터를 클라이언트 측 서버로 변환하려고합니다. Express et React.js를 사용하고 있습니다.클라이언트 측에서 mongoDB 데이터를 json으로 변환하십시오.

효율적인 :

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> 
    ) 
} 

CONSOLE.LOG 반환 :

"j:{\"_id\":\"58e622ac7144862dbb5722f1\",\"password\":\"paswdtest\",\"email\":\"[email protected]\",\"pseudo\":\"testname\",\"__v\":0}" 

서버 :

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); 
    } 
} 

내가 구문 분석과 변환 stringlify려고하지만 작동하지 않습니다.

답변

1

MongoDB는 JSON을 반환하지 않고 대신 BSON이라는 확장 된 JSON을 반환합니다.

필요가 간단한 경우 가장 빠른 방법은 코드에서 JSON을 JSON으로 변환하는 것입니다.

귀하의 예를 들어

이 될 것

전에

"j:{\"_id\":\"58e622ac7144862dbb5722f1\",\"password\":\"paswdtest\",\"email\":\"[email protected]\",\"pseudo\":\"testname\",\"__v\":0}" 

{"j":{"_id":"58e622ac7144862dbb5722f1","password":"paswdtest","email":"[email protected]","pseudo":"testname","__v":0}} 
관련 문제