我尝试正确实现登录过程,我正在使用前端的服务器渲染视图批准。基于什么sails.js官方文件说,有关设置的路线,所以在我routes.js,我有这个:Sails.JS重定向时找不到路由
module.exports.routes = {
'/': {
view: 'login'
},
// Server render HTML views
'POST /signup':'UserController.signup',
'PUT /login': 'UserController.login',
'GET /logout':'UserController.logout',
'GET /profile': 'PageController.showProfilePage',
'GET /dashboard': 'PageController.showDashboardPage',
'GET /products': 'PageController.showProductPage'
};
正常情况下,仪表板路由存在所以我想做的事情是,当我登录,我m会自动重定向到仪表板。 所以在我UserController.js,我有这个:
login : function (req, res){
//... some code here
success : function(){
if(userFound.deleted){
return res.forbidden("'Your account has been deleted.
Please visit ecommerce.com/restore to restore your account'");
}
if(userFound.banned){
return res.forbidden("'Your account has been banned
completly because you didn't respect the use term of our site");
}
// Store user id in a session
req.session.userId = userFound.id;
console.log(req.session);
res.redirect('/dashboard');
return;
}
})
})
}
最后,我有我的PageController,我在那里展示基于用户是否被验证的Web应用程序的所有不同的看法,在这种情况下,是仪表板。所以,这里是我的代码说:
showDashboardPage: function (req, res){
if(!req.session.userId){
console.log(req.session);
return res.redirect('/')
}
if(req.session.userId){
User.findOne(req.session.userId, function (err, user){
if(err){
console.log(req.session);
return res.negotiate(err);
}
if(!user){
console.log(req.session);
sails.log.verbose('Session refers to a user who no longer exist');
return res.redirect('/');
}
console.log(req.session);
return res.view('user/dashboard', {
layout: 'user/mainUserLayout',
me: {
id: user.id,
username: user.username,
fullname: user.fullname,
profilePicture: user.profilePicture,
admin: user.admin
}
});
});
}
}
当我登录时,我得到一个404未找到服务器错误。我不知道我是否真的错过了一些东西。一些帮助将非常感激。 :)