Проблема с размещением информации Auth0 в моей базе данных Postgresql

#reactjs #database #postgresql #fetch #auth0

Вопрос:

Я пытаюсь обновить свою собственную базу данных информацией, полученной от пользователя Auth0 после входа в систему.

Все, чего я хочу, — это user.name и пользователь.электронная почта. Вход в систему работает идеально, и я могу получить доступ к информации о пользователе для отображения страницы профиля, но я не могу отправить те же данные в свою базу данных.

Ошибки/проблемы;

  • Кнопка аутентификации.js:16 СООБЩЕНИЙ http://localhost:3000/newlogin 500 (Внутренняя ошибка Сервера)
  • VM24:1 Неперехваченная (в обещании) синтаксическая ошибка: Неожиданный токен (Подразумевает, что информации нет?)
  • ошибка: значение null в столбце «имя» отношения «клиент» нарушает ограничение not-null. (Эта ошибка подразумевает, что запрос поступает в базу данных, но без информации.)

Файл кнопки аутентификации Auth0;

 import React, { useEffect } from 'react';
import LoginButton from './LoginButton';
import LogoutButton from './LogoutButton';
import { useAuth0 } from '@auth0/auth0-react';

const AuthenticationButton = () => {
  const { user, isAuthenticated } = useAuth0();

   useEffect(() => {
    register();
},[])

  const register = () => {
    if(isAuthenticated) {
      const { name, email } = user;
      fetch('/newlogin', {
          method: 'POST',
          body: { name, email }
        })
        .then(res => res.json())
      }}
      
  return isAuthenticated ? <LogoutButton /> : <LoginButton />;
};

export default AuthenticationButton;
 

Server.js файл;

 const express = require('express');
const app = express(); 
app.use(express.urlencoded({extended: false}));
app.use(express.json());
const Pool = require('pg').Pool;
require('dotenv').config();
const listenPort = process.env.REACT_APP_LISTENPORT; 

//Connection to PostgreSQL Database
const pool = new Pool({
    user: process.env.REACT_APP_USER,
    host: process.env.REACT_APP_HOST,
    database: process.env.REACT_APP_DATABASE,
    password: process.env.REACT_APP_PASSWORD,
    dialect: process.env.REACT_APP_DIALECT,
    port: process.env.REACT_APP_DBPORT
});

//POST /customer route
app.post('/newlogin', (req, res, next) => {
    const name = req.body.name;
    const email = req.body.email;
    pool.query('INSERT INTO customer(name, email) VALUES($1, $2)', [name, email], (err, res) => {
        if(err) return next(err);
        console.log(res)
    })
});