如何确保控制器操作仅在sails.js应用程序中调用一次。。?
我正在尝试在我的sails应用程序中实现用户身份验证。。但是我在不同的控制器中遇到了一个问题,他们的操作被调用了两次。。我已通过浏览器进行检查,请求只发送一次。。下面是一个例子如何确保控制器操作仅在sails.js应用程序中调用一次。。?,sails.js,passport.js,Sails.js,Passport.js,我正在尝试在我的sails应用程序中实现用户身份验证。。但是我在不同的控制器中遇到了一个问题,他们的操作被调用了两次。。我已通过浏览器进行检查,请求只发送一次。。下面是一个例子 // api/controllers/AuthController.js ... logout: function (req, res) { console.log("Loggin out"); req.logOut(); res.json({message: 'Logge
// api/controllers/AuthController.js
...
logout: function (req, res) {
console.log("Loggin out");
req.logOut();
res.json({message: 'Logged out succesfully'});
},
...
下面是我的config/routes.js
文件。(使用get执行许多操作只是为了便于测试api….)
我已将isAuthenticated策略应用于此操作。。就像
module.exports = function(req, res, next) {
if(req.isAuthenticated()) {
console.log("Valid User");
return next();
}
else {
console.log("User not logged in");
return res.json({error: "Please login"});
}
};
否每当我调用/logout
时,我都会返回以下json
{
"error": "Please login"
}
这是服务器上的输出
Valid User
Loggin out
User not logged in
这意味着我的控制器的操作被调用了两次。。这不仅仅是这个控制器的问题。UserController.add操作具有相同的问题。我似乎每件事都做得很好,但我不知道这个问题是从哪里来的。有人能建议我如何调试它吗。或者问题的根源是什么。据我所知
哦,几周前我也有同样的问题 Sails还调用静态文件(比如styles.css)上的中间件。记录req对象,然后查看浏览器请求的内容 有两种方法可以处理此问题: 1.)尝试在路线中设置SkipPassets:true(请参阅:)
2.)在您的策略中添加一个if条件以跳过资产(如“.js”、“.css”等)。我在操作结束时添加了一个
return
,现在只调用一次。。但我仍然不知道为什么它被称为两次我说的是行动而不是资产
Valid User
Loggin out
User not logged in