这里不完全是编码问题,但我发现很难为我的API端点编写任何有意义的注释。
以下是一个例子:
router.get('/courses/:part/modules/:number/:module/sections/:section',
isAuthenticated, hasSubscription, (req, res) => {
render(req, res);
});
如果用户经过身份验证并拥有正确的订阅,那么这就是呈现页面。如果未经过身份验证,则重定向到登录,如果订阅不正确,则重定向到订阅页面。如果两者都没问题,则呈现页面。
这是一个POST示例端点:
module.exports = (app, passport, router) => {
router.use('/login', (req, res, next) => {
if (req.user) return res.redirect('/dashboard');
next();
});
router.route('/login').post((req, res, next) => {
req.assert('email', 'Please sign up with a valid email.').isEmail();
req.assert('password', 'Password must be at least 4 characters long').len(4);
var errors = req.validationErrors();
if (errors) {
req.flash('errors', errors);
return res.redirect('/login');
}
passport.authenticate('login', {
successRedirect: req.session.returnURL || '/dashboard',
failureRedirect: '/login',
failureFlash : true
})(req, res, next);
});
};
我完全不知道如何评论上述内容。我在这里做的就是先检查我是否已登录,然后使用护照登录用户并相应地重定向。当然,我也在这里验证两个字段:电子邮件和密码,并将错误返回给客户端。