Во -первых, я новичок в использовании Express, и это моя первая попытка создать страницу аутентификации. Я подключился к базе данных MySQL и успешно запрашивал пароли базы данных, но, как только я попытаюсь использовать хэшированный пароль и сравнить с bcrypt.compare, я получаю «приложение сбоя - ожидание изменений файлов» перед началом «ошибка». /p>
Вот мой код: < /p>
const express = require("express");
const mysql = require("mysql");
const cors = require("cors");
const bcrypt = require('bcryptjs')
const app = express();
app.use(express.json())
app.use(cors());
const db = mysql.createConnection({
host: "localhost",
user: "useraccount",
password: "useraccount",
database: "users",
});
app.post('/login', (req, res) => {
const sql = 'SELECT password FROM auth_table WHERE email = ?'
db.query(sql, req.body.email, (err, data) => {
if (err) return res.json("Error.");
if (data.length > 0) {
bcrypt.compare(req.body.password, res.json(data), function (err, result) {
if (err) throw err;
if (result) {
return res.json("Login Successful.");
}
})
} else {
return res.json("Login Failed.")
}
})
})
app.listen(8081, () => {
console.log("Listening....");
});
< /code>
Я прокомментировал логику Bcrypt, и она работает нормально, поэтому я почти уверен, что это до этого фрагмента. И когда я проверяю ответ HTTP в инспекторе, который я получаю [{"пароль": "$ 2A $ 13 $ kzx7p1/gfjwrnghf8gcwouqwkqsojkrcfheg.owf93owfygfzjzy"}].
Подробнее здесь: https://stackoverflow.com/questions/794 ... nd-express