Я создаю конечную точку Express, где я проверяю, есть ли имя пользователя / пароль в моей базе данных (файл json)
router.post('/login', (req, res) => {
let userData = req.body;
if (validateEmailAndPassword(userData.username, userData.password) {
res.send(userData);
} else {
res.status(401).send({ error: "Username/Password combination is incorrect." });
}
})
const validateEmailAndPassword = (username, password) => {
let validCreds = false;
fs.readFile('db/users.json', 'utf8', (err, data) => {
if (data) {
const stream = JSON.parse(data);
const usersFound = stream.filter(info => {
if (info.username === username && info.password ===password) { return true; }
})
if (usersFound.length >= 1) { validCreds = true; }
return validCreds;
} else {
throw Error(err);
}
})
}
'validateEmailAndPassword (userData.username, userData.password)' в строке 3первого блока кода возвращает «неопределенное» в условии if, потому что оно асинхронное.
Каков наилучший способ разрешить 'validateEmailAndPassword (userData.username, userData.password)' синхронно, чтобы я получил значениеtrue / false без использования readFileSync?
Заранее спасибо!