Задать вопрос
@maxemga

Не отправляется запрос на сервер, что делать?

Я пытаюсь отправить запрос на сервер для того, чтобы закинуть их в базу данных, но постоянно вылезает ошибка
POST http://localhost:3000/api/auth/register 500 (Internal Server Error)

И я все что только можно делал, пытался но не получается
Может у вас есть хоть какие-то идеи? Я в Бэке новичок и я просто хз что делать, ибо я с помощью прокси пофиксил проблему с Роутом и сейчас все ок, но ошибка 500

Вот у меня Основной скрипт сервера
app.use('/api/auth', require('./routers/authRouter'));

Это роутеры где производятся основные манипуляции
const {Router} = require('express');
const router = Router();
const User = require('../models/user');
const bcrypt = require('bcrypt');
const jwt = require('jsonwebtoken');
const config = require('../config/default.json')

router.post('/register', async (req, res) => {
    try {

        const {email, name, password } = req.body;

        const candidate = await User.findOne({email});
    
        if (candidate) {
           return res.status(400).json({messenge: "Такой пользователь уже существует"})
        }
        const hashedPassword = await bcrypt.hash(password, 8);
        const user = new User({email, name, password: hashedPassword });
        await user.save()

        res.status(201).json({messenge: "Новый пользователь создан"})

    }
    catch (e) {
        res.status(500).json({ messenge: 'Что-то пошло не так' })
    }

})

Напписал Хук для Fetch
import { useCallback, useState } from "react"

export function useHttp() {
    const [loading, setLoading] = useState(false);
    const [error, setError] = useState(null)

    const request = useCallback(async (url, method = 'GET', body = null, headers = {}) => {
        setLoading(true)
        try {         
            const req = await fetch(url, {
               method, body, headers
            })
            const data = await req.json()
            setLoading(false)
            if(!req.ok) {
                throw new Error(data.messege)
            }

        }
        catch(e) {
            setLoading(false);
            setError(e.messege);
            throw e
        }      
    }, [])
    const clearError = () => setError(null)

    return {error, loading, request, clearError}
}


И на клиенте при нажатии на кнопку вызваю эту функцию
const Register = async(values) => {
        try {
            const data = await request('/api/auth/register', 'POST', values)
            console.log(data)  
        }
        catch(e) {
            console.log("Error" + e.name)
        }
    
    }


Сделал Прокси
"proxy": "http://localhost:5000/",
  • Вопрос задан
  • 432 просмотра
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
Wanted. Санкт-Петербург
До 300 000 ₽
Grow Media Москва
от 150 000 до 200 000 ₽
12 дек. 2024, в 20:33
50000 руб./за проект
12 дек. 2024, в 19:50
20000 руб./за проект
12 дек. 2024, в 19:39
15000 руб./за проект