Как исправить ошибку Error: Objects are not valid as a React child
Как исправить и понять данную ошибку, как мне найти кусок кода где она находится ?
Error: Objects are not valid as a React child (found: object with keys {code, errno, sqlMessage, sqlState, index, sql}). If you meant to render a collection of children, use an array instead. at throwOnInvalidObjectType (http://localhost:3000/static/js/bundle.js:54931:13) at reconcileChildFibers (http://localhost:3000/static/js/bundle.js:55858:11) at reconcileChildren (http://localhost:3000/static/js/bundle.js:59137:32) at updateHostComponent (http://localhost:3000/static/js/bundle.js:59861:7) at beginWork (http://localhost:3000/static/js/bundle.js:61499:18) at beginWork$1 (http://localhost:3000/static/js/bundle.js:67230:18) at performUnitOfWork (http://localhost:3000/static/js/bundle.js:66388:16) at workLoopSync (http://localhost:3000/static/js/bundle.js:66301:9) at renderRootSync (http://localhost:3000/static/js/bundle.js:66270:11) at recoverFromConcurrentError (http://localhost:3000/static/js/bundle.js:65678:24)
Вот что мне пишет консоль при данной ошибке

Код формы регистрации
import React from "react";
import { useState } from "react";
import { Link, useNavigate } from "react-router-dom";
import axios from "axios";
const Register = () => {
const [inputs, setInputs] = useState({
username: "",
email: "",
password: "",
});
const [err, setError] = useState(null);
const navigate = useNavigate();
const handleChange = (e) => {
setInputs((prev) => ({ ...prev, [e.target.name]: e.target.value }));
};
const handleSubmit = async (e) => {
e.preventDefault();
try {
await axios.post("/auth/register", inputs);
//navigate("/login");
} catch (err) {
setError(err.response.data);
}
};
return (
<div className="auth">
<h1>Register</h1>
<form>
<input
required
type="text"
placeholder="username"
name="username"
onChange={handleChange}
/>
<input
required
type="email"
placeholder="email"
name="email"
onChange={handleChange}
/>
<input
required
type="password"
placeholder="password"
name="password"
onChange={handleChange}
/>
<button onClick={handleSubmit}>Register</button>
{err && <p>{err}</p>}
<span>
Do you have an account? <Link to="/login">Login</Link>
</span>
</form>
</div>
);
};
export default Register;
Роут аутендефикации
import express from "express";
import { register, login, logout } from "../controllers/auth.js";
const router = express.Router();
router.post("/register", register);
router.post("/login", login);
router.post("/logout", logout);
export default router;
Контроллер авторизации
import { db } from "../db.js";
import bcrypt from "bcryptjs";
import jwt from "jsonwebtoken";
export const register = (req, res) => {
//CHECK EXISTING USER
const q = "SELECT * FROM users WHERE email = ? OR username = ?";
db.query(q, [req.body.email, req.body.username], (err, data) => {
if (err) return res.status(500).json(err);
if (data.length) return res.status(409).json("User already exists!");
//Hash the password and create a user
const salt = bcrypt.genSaltSync(10);
const hash = bcrypt.hashSync(req.body.password, salt);
const q = "INSERT INTO users(`username`,`email`,`password`) VALUES (?)";
const values = [req.body.username, req.body.email, hash];
db.query(q, [values], (err, data) => {
if (err) return res.status(500).json(err);
return res.status(200).json("User has been created.");
});
});
};
export const login = (req, res) => {
//CHECK USER
const q = "SELECT * FROM users WHERE username = ?";
db.query(q, [req.body.username], (err, data) => {
if (err) return res.status(500).json(err);
if (data.length === 0) return res.status(404).json("User not found!");
//Check password
const isPasswordCorrect = bcrypt.compareSync(
req.body.password,
data[0].password
);
if (!isPasswordCorrect)
return res.status(400).json("Wrong username or password!");
const token = jwt.sign({ id: data[0].id }, "jwtkey");
const { password, ...other } = data[0];
res
.cookie("access_token", token, {
httpOnly: true,
})
.status(200)
.json(other);
});
};
export const logout = (req, res) => {
res.clearCookie("access_token",{
sameSite:"none",
secure:true
}).status(200).json("User has been logged out.")
};