在我的Mac上使用SailsJS 0.10.5(使用npm -g安装),我正在尝试将策略应用于控制器操作,我收到此错误:
error: In user.isloggedin, ignored invalid attempt to bind route to a non-function controller: { identity: 'isAuthenticated',
globalId: 'isauthenticated',
_middlewareType: 'POLICY: isAuthenticated' } for path: /isLoggedIn
我有一个带有操作的控制器,config / route.js中的路由,config / policies.js中的策略
其他详细信息
如果我在config / policies.js文件中没有使用isAuthenticated,我不会收到此错误。
我使用护照本地护照
任何想法我做错了什么?
配置/ policies.js
module.exports.policies = {
'*': true,
UserController: {
'signup': true,
'isLoggedIn': 'isAuthenticated'
},
AuthController: {
'*': true
}
};
配置/ routes.js
module.exports.routes = {
'post /signup' : {
controller: 'UserController',
action: 'signup',
},
'/isLoggedIn' : {
controller : 'UserController',
action : 'isLoggedIn'
}
};
API /控制器/ UserController.js
var passport = require('passport');
module.exports = {
signup: function(req, res) {
User.create(req.params.all()).exec(function(err, user) {
if(err) {
return res.negotiate(err);
}
req.logIn(user, function(err) {
if(err) {
return res.negotiate(err);
}
return res.redirect('/');
});
});
},
isLoggedIn: function(req, res) {
User.findOne({id: req.session.passport.user}).exec(function(err, user) {
if(err) {
return;
}
res.json(user);
});
}
};
API /策略/ isAuthenticated.js
module.export = function isAuthenticated(req, res, next) {
if(!req.isAuthenticated()) {
console.log('403!!!');
return res.send(403, {message: 'Not Authorized' });
}
console.log('asdf');
return next();
};
答案 0 :(得分:4)
尝试在您的文件中使用 s 将module.export
更改为module.exports
<