我正在使用快速会话构建一个简单的登录功能。但是,会话对象doest工作。我的逻辑是,当用户成功创建时,req.session将获得user_id。然后验证将检查req.session,但程序不会那样。登录api中的第一个控制台将在req.session中打印userId属性,但验证中的req.session不会。我不知道发生了什么事?
app.use(session({
secret : 'xxxyyy',
cookie :{
maxAge : 60*1000
}
}));
app.get('/api/validate',function(req,res){
console.log(req.session);
var _userId = req.session._userId;
if(_userId) {
User.findByUserById(_userId,function(err,user){
if (err) {
res.json(401,{msg:err})
} else{
res.json(user);
};
})
}else{
res.json(401,null);
};
})
app.post('/api/login',function(req,res){
var email = req.body.email;
if (email) {
User.findByEmailOrCreate(email,function(err,user){
if (err) {
res.json(500,{msg:err})
} else{
req.session._userId = user._id;
console.log(req.session)
res.json(user)
};
})
} else {
res.json(403);
};
})
我的书说服务器重启后会清理会话。 我的客户端是像这样的Angular应用程序
$http({
url : "/api/login",
method : 'POST',
data : {
email : $scope.email
}
}).success(function(user){
console.log(user)
$scope.$emit('login',user);
$location.path('/')
我认为路径更改不会重启服务器。任何人都告诉我为什么?或者我如何改进代码。