我给401 Uanthourised ACCES与render() - 它如何加载控制器?
module.exports = function() {
return function(req, res, next) {
if (!req.isAuthenticated()) {
res.status(401);
console.log('Unauthorized');
res.render('login.html', { csrfToken: req.csrfToken() });
return;
}
next();
};
};
现在login.html
头是一个视图通过完全地不同控制器处理:
var passport = require('passport');
var config = require(__dirname + '/../lib/config');
module.exports = function (router) {
router.get('/', function (req, res) {
// Error flash messages
var errorFlash = req.flash('error');
if (errorFlash && errorFlash.length) {
res.locals.error = errorFlash;
}
res.render('login.html', { csrfToken: req.csrfToken() });
});
router.post('/',
passport.authenticate('local', {
failureRedirect: '/login/',
failureFlash: true
}),
function(req, res) {
res.cookie(config.cookie.name, req.user.email, { signed: true, maxAge: 1234 });
res.redirect('/');
}
);
};
我关心的是我如何能确保登录控制器火起来的哪一部分? render('index.html')
以某种方式在索引控制器中挂接到router.post()
,并且登录表单像往常一样处理。这怎么可能?
原因减去或没有发生 – 2015-04-08 10:47:31
我认为减号'是因为这个问题令人困惑。 'render('index.html')'会返回一个视图(可能在'views/index.html'中)。您包含的第二个代码段处理到GET /和POST /路由的路由。为了回答你的问题,这个视图(你没有在上面显示)应该与'router.post()'连接起来。 如果这不能说明问题,请重新提出您的问题! – olan 2015-04-10 19:18:30