У меня есть следующие 3 фрагмента кода, взятые из рабочего проекта, который я скачал из интернета:
файл: . / Rout.js
// ...
var passport = require('passport');
var requireLoginLocal = passport.authenticate('local', { session: false });
var authController = require('./controllers/authController');
// ...
module.exports = function(app) {
// ...
authRoutes.post('/login/local', requireLoginLocal, authController.login);
// ...
}
файл: . / Config / passport.js
// ...
var LocalStrategy = require('passport-local').Strategy;
// ...
module.exports = function(passport) {
passport.use(new LocalStrategy({
usernameField: 'email' /* changing default */
},
function(email, password, done) {
email = email.toLowerCase();
User.findOne({
'email': email
},
function(err, user) {
if (err) {
return done(err);
}
if (!user) {
return done(null, false, { error: 'Login failed. Please try again.' });
}
user.comparePassword(password, function(err, isMatch) {
if (err) {
return done(err);
}
if (!isMatch) {
return done(null, false, { error: 'Login failed. Please try again.' });
}
return done(null, user);
});
}
);
}
));
};
файл: . / Controllers / authController.js
// ...
exports.login = function(req, res, next) {
var userInfo = getUserInfo(req.user);
res.status(200).json({
token: 'JWT ' + generateToken(userInfo),
user: userInfo
});
}
// ...
У меня есть следующие вопросы:
1- В файле: ./routes.js
, в строке:
authRoutes.post('/login/local', requireLoginLocal, authController.login);
как данные передаются от 2-го к 3-му аргументу?
2- В файле: ./config/passport.js
, как влияют эти возвращаемые значения на передаваемые значенияот 2-го до 3-го аргумента в строке выше?
3- В файле: ./controllers/authController.js
, в функции: exports.login
, там ничего не возвращается, так как это влияетзначения, переданные из 3-го аргумента и возможного 4-го аргумента в гипотетической строке, подобной приведенной выше?