reactjs - 将 Auth0 信息发布到我的 Postgresql 数据库时出现问题
问题描述
我正在尝试使用登录后从 Auth0 用户收集的信息更新我自己的数据库。
我想要的只是 user.name 和 user.email。登录工作完美,我可以访问用户信息以显示个人资料页面,但我无法将相同的数据发送到我的数据库。
错误/问题;
- AuthenticationButton.js:16 POST http://localhost:3000/newlogin 500(内部服务器错误)
- VM24:1 Uncaught (in promise) SyntaxError: Unexpected token < in JSON at position 0. (暗示没有信息?)
- 错误:关系“客户”的“名称”列中的空值违反了非空约束。(此错误意味着查询正在到达数据库但没有信息。)
Auth0 AuthenticationButton 文件;
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;
服务器.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)
})
});
解决方案
推荐阅读
- reactjs - ReactJS setState 与对象和数组
- html - 为什么在按钮上按 Enter 不会导致:Chrome 中的活动状态?
- html - 使用 ngFor 内的方括号访问对象内的数组
- javascript - 不推荐使用 yAxis 类时,如何更改 Highcharts 图表中 y 轴的高度?
- c# - 如何使用依赖注入引入 Json 转换器?
- android - 用户可以删除存储在共享首选项中的数据吗?
- react-select - React-select Clear 和 Dropdown 指示器顺序
- angular - 有没有办法使用自定义 Angular 指令来应用 ngIf “效果”?
- c# - Visual Studio - 将文件从大写重命名为小写
- sql - 查询根据发布日期过滤订单?