我正在尝试将客户端cookie传递的mongoDB数据从我的服务器转换。 我正在使用Express et React.js。
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\":\"test@test.com\",\"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);
}
}
我正在尝试使用parse和stringlify进行转换,但它无效。
答案 0 :(得分:1)
MongoDB不会返回JSON,而是返回名为BSON的扩展JSON。
如果您的需求很简单,那么最快的方法可能是在您的代码中将BSON转换为JSON。
对于你的例子,这将是
<强>前强>
{"j":{"_id":"58e622ac7144862dbb5722f1","password":"paswdtest","email":"test@test.com","pseudo":"testname","__v":0}}
<强>后强>
in