При отправке запроса ошибка "400 bad request"

При нажатии на кнопку "btn1_sign_in" в консоле браузера возникает ошибка :`sign_in:28

   POST http://localhost:3000/sign_in 400 (Bad Request)

(anonymous) @ sign_in:28

sign_in:39 Ошибка при проверке!`

код server.js

const ejs = require("ejs")

const express = require('express')
const session = require('express-session')

const bc = require('bcrypt')

const app = express()

const sql = require('sqlite3')

const crypto = require('crypto')

const parser = require('body-parser')

const db = new sql.Database('./auth/auth.qlite3', (err)=>{
    if (err){
        console.log('Errpor' + err)
    }else{
        console.log('Databes Connected!')
        return;
    }
    }
    )
    db.run(`CREATE TABLE IF NOT EXISTS users (
        id INTEGER PRIMARY KEY AUTOINCREMENT,
        login TEXT UNIQUE NOT NULL,
        password TEXT NOT NULL)`)

app.use(parser.urlencoded({extended: false}))
app.use(parser.json())
//register
app.post('/sign_up', (req, res)=>{
    let login_u = req.body.login_u;
    let password_u = req.body.password_u;
    
    bc.genSalt(10, (err, salt) => {
        if (err){
            console.log('Ошибка:' + err)
            return;
        }
        bc.hash(password_u, salt, (err, hash) => {
            if (err){
                console.log('Ошибка при Hash' + err.message)
                return;
            }
            
            db.get(`SELECT * FROM users WHERE login=?`, [login_u],(err, row)=>{
            if (err){
                console.log('Error:' + err)
                res.status(500, 'Ошибка при получении данных!')
                return;
            }
            if(row){
                res.status(400, `Пользователь с логином ${login_u} - уже существует!`)
                console.log(`Пользователь с логином ${login_u} - уже существует!`)
            }
        })
        
                db.run(`INSERT INTO users (login, password) VALUES (?, ?)`, [login_u, hash],
                    (err)=> {
                        if (err){
                            console.log('Ошибка:' + err)
                            res.status(500, 'Ошибка при добавлении пользователя')
                            return;
                        }
                        res.send(`User ${login_u} is add`)
                    }
                )
            })
        })
        
    
        })

app.use(session({
    secret: crypto.randomBytes(32).toString('hex'),
    resave: false,
    saveUninitialized: false,
    cookie:{maxAge: 1000 * 60 * 60 * 24}
}))

app.post('/sign_in', (req, res) => {
    const login = req.body.login;
    const password = req.body.password;

    db.get(`SELECT * FROM users WHERE login = ?`, [login], (err, row) => {
        if (err) {
            console.error(err);
            res.status(500).send('Ошибка при получении данных');
            return;
        }

        if (row) {
            // Сравниваем пароли
            bc.compare(password, row.password, (err, match) => {
                if (err) {
                    console.log('Ошибка при проверке пароля:', err);
                    res.status(500).send('Ошибка при проверке пароля');
                    return;
                }

                // Проверяем результат сравнения 
                if (match) {
                    req.session.loggedIn = true;
                    req.session.userId = row.id;
                    req.session.username = row.login;
                    res.redirect('/profile');
                } else {
                    res.status(400).send('Неверный пароль!');
                }
            }); 
        } else {
            res.status(404).send('Пользователь не найден');
        }
    });
});



app.get('/profile', (req, res)=>{
    if (req.session.loggedIn) {
        res.send('Авторизован!')
        console.log('+')
    }else{
        req.redirect('/sign_in')
    }
})

app.use(express.static('lic'))

app.set('view engine', 'ejs')
app.set('views', __dirname)
app.get('/sign_up', (req, res) => {
    res.render('./str/sign_up.ejs')
})
app.get('/sign_in', (req, res) => {
    res.render('./str/sign_in.ejs')
})
app.get('/profile', (req, res)=>{
    res.render('./str/profile.ejs')
})

    

app.listen(3000, ()=>{
    console.log('Сервер работает!')
})

код sign_in.ejs

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Sign in</title>
    <link rel="stylesheet" href="/sign_up.css">
</head>
<body>
   <header>
        <div class="txt1_net">Network</div>
        <div class="txt2_net">Welcome to Network</div>
        <div class="txt3_sign_up">создать акаунт</div>
   </header>
   <header>
        <input class="int1_log" id="int1_log" type="text" placeholder="Login" min="3">
        <input class="int2_pass" type="password" placeholder="password" min="5">
   </header>
   <header>
        <a class="lnk1_pass">Забыл пароль?</a>
        <a class="lnk2_sign_up">sign up</a>
        <button class="btn1_sign_in" id="btn1_sign_in">sign in</button>
   </header>
   <script>
    document.querySelector('.btn1_sign_in').addEventListener('click', function(){
        let login = document.querySelector('.int1_log').value;
        let password = document.querySelector('.int2_pass').value;

        fetch('/sign_in', {
            method : 'POST',
            headers : {
                'Content-Type':'application/x-www-form-urlencoded'
            },
            body : `login=${login}&password=${password}`
        }) // Добавлены скобки после body
            .then(response => {
                if (response.ok){
                    console.log(`Проверка...`)
                }else {
                    console.error(`Ошибка при проверке!`)
                }
            })
            .catch(error =>{
                console.log('Ошибка при отправке запроса:', error)    
            });
    });
</script>

</body>
</html>


Ответы (0 шт):