Я использую password.js для аутентификации пользователя. У меня есть 2 функции, чтобы проверить, вошел ли пользователь в систему или нет. Первая функция:
isLoggedIn(req, res, next) {
if (req.isAuthenticated()) {
return next();
}
else {
res.redirect('/');
}
}
2-я функция:
isLoggedInCheck(req, res) {
if (req.isAuthenticated()) {
return true;
}
else {
return false;
}
}
Я беру эти 2 функции в классе Helper. Когда я использую первую функцию (я передаю ее в функции маршрутов как промежуточное ПО), она работает:
var Helper = require('../helpers/helper');
var helper = new Helper();
router.get('/', helper.isLoggedIn, admin.melihat_daftar_venue);
Но когда я хочу использовать вторую функцию:
if (helper.isLoggedInCheck) {
//code
}
else{
}
Функция просто возвращает определение функции вместо истины / ложи. Как это исправить. Спасибо
нет, он возвращает ошибку
см. подробный ответ ниже, какую ошибку вы получаете



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы используете isLoggedIn в качестве промежуточного программного обеспечения ExpressJS, в то время как isLoggedInCheck внутри условия, поэтому вам нужно вызвать функцию (helper.isLoggedInCheck(req, res) внутри условия if при определении внутри функции get
if (helper.isLoggedInCheck(req, res)) {
//code
}
else{
}
и первый
router.get('/', helper.isLoggedIn, admin.melihat_daftar_venue);
или (не рекомендуется, просто показываю пример)
router.get('/', (req, res, next) => {
helper.isLoggedIn(req, res, next)
}, admin.melihat_daftar_venue);
но req и res должны быть инициализированы перед передачей в isLoggedInCheck. Как инициализировать httpreq (req) и здесь ответ? @ Ариф Хан
попробуйте
if (helper.isLoggedInCheck(req)) {