2017-04-07 6 views
0

私のクライアント側のcookieによって渡されたmongoDBデータを自分のサーバーから変換しようとしています。 私はExpress et React.jsを使用しています。クライアント側のMongoDBデータをjsonに変換する

Cient:

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を返します。

あなたのニーズが単純な場合、最も簡単な方法は、BSONをコード内の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}" 

だろう

関連する問題