尝试使用express和mongoDB更新Node.js中的会话时出现问题。
我正在将图片上传到目录,在mongo上保存它的名字,他们根据mongo记录更新会话。
问题在于,当我更新会话时,它获得了正确的数据(新图像名称),但是当移动到另一个路径时,它仍然得到旧的图像名称引用。
我的代码:
exports.uploadphoto = function(req,res){
if(!req.session.authorized){
res.json(403,{message:'YOU MUST BE LOGGED IN'});
return;
}
var userPhotoName = req.session.userData.photo;
if(userPhotoName) {
fs.exists('public/userAssets/'+ userPhotoName, function (exists) {
fs.unlink('public/userAssets/'+ userPhotoName, function (err) {
if (err) throw err;
console.log('DELETED AT public/userAssets/'+ userPhotoName);
});
});
}
fs.readFile(req.files.photo.path, function(err, data){
if(err)trow(err);
var nameHash = crypto.createHash('md5').update(data).digest('hex');
fs.writeFile('public/userAssets/'+ nameHash ,data,function(err){
if(err) trow(err);
User.findOneAndUpdate({email:req.session.userData.email},{$set:{photo:nameHash}}, function(err,result){
if (err){
res.json(401, {message: err});
}else{
req.session.userData.photo = nameHash;
console.log('SESSION - '+ req.session.userData);
}
});
res.json(200, {message:'userAssets/'+ nameHash});
});
});
};
我的日志
关于更新: 会议 - f925e0b6feb77878dd918da6a869af23(新参考)
当我申请另一条路线时
SESSION NAV NOW - 44f4a87035bd22c1995dcf0ab8af05b0(旧参考)
会话日志发生在我更新照片参考时,另一个发生在此之后,当我尝试移动到另一条路线时。
如果我再次logOut和logIN它完美地工作。有什么我可以用来强制会话更新?喜欢同步还是什么?
非常感谢!!!