2017-04-07 52 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,而是返回擴展的JSON BSON

如果您的需求很簡單,那麼最快的方法可能是將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}} 
相關問題