簡體   English   中英

POST http://localhost:5000/users/signin 500(內部服務器錯誤)試圖使身份驗證工作

[英]POST http://localhost:5000/users/signin 500 (Internal Server Error) trying to make auth works

當我為我的 Auth 發布數據時,控制台拋出此錯誤 ** 500(內部服務器錯誤)** 我認為問題出在我的服務器上,首先檢查數據庫並且數據在集群中,但數據在集群中不起作用我的客戶。 我知道這種類型的問題經常出現在服務器上。 我已經搜索了幾個小時,但我無法弄清楚。

這是索引

 import express from 'express'; import bodyParser from 'body-parser'; import mongoose from 'mongoose'; import cors from 'cors'; import postRoutes from './routes/posts.js'; import userRoutes from './routes/users.js'; const app = express(); app.use(bodyParser.json({ limit: '30mb', extended: true })) app.use(bodyParser.urlencoded({ limit: '30mb', extended: true })) app.use(cors()); app.use('/posts', postRoutes); app.use('/users', userRoutes); const CONNECTION_URL = '**THIS_IS_MY_MONGO_DB; const PORT = process.env.PORT|| 5000; mongoose.connect(CONNECTION_URL, { useNewUrlParser: true, useUnifiedTopology: true }) .then(() => app.listen(PORT, () => console.log(`Server Running on Port: http://localhost:${PORT}`))) .catch((error) => console.log(`${error} did not connect`)); mongoose.set('useFindAndModify', false);

users.js 路由

 import express from 'express'; import { signin, signup } from '../controllers/user.js'; const router = express.Router(); router.post('/signin', signin); router.post('/signup', signup); export default router;

用戶控制器

 import bcrypt from "bcryptjs"; import jwt from "jsonwebtoken"; import User from "../models/user.js"; export const signin = async (req, res) => { const { email, password} = req.body; try { const existingUser = await User.findOne({ email }); if(!existingUser) return res.status(404).json({ message: "El usuaruio no existe."}); const isPasswordCorrect = await bcrypt.compare(password, existingUser.password); if(!isPasswordCorrect) return res.status(400).json({ message: "Credenciales invalidas."}); const token = jwt.sing({ email: existingUser.email, id: existingUser._id }, 'test', { expiresIn: "1h" }); res.status(200).json({ result: existingUser, token}); } catch (error) { res.status(500).json({ message: 'Algo salio mal.' }); } } export const signup = async (req, res) => { const { email, password, confirmPassword, firstName, lastName } = req.body; try { const existingUser = await User.findOne({ email }); if(existingUser) return res.status(400).json({ message: "El usuaruio ya existe."}); if(password !== confirmPassword) return res.status(400).json({ message: "Las contraseñas no coinciden."}); const hashedPassword = await bcrypt.hash(password, 12); const result = await User.create({ email, password: hashedPassword, name: `${firstName} ${lastName}` }) const token = jwt.sing({ email: result.email, id: result._id }, 'test', { expiresIn: "1h" }); res.status(200).json({ result, token}); } catch (error) { res.status(500).json({ message: 'Algo salio mal.' }); } }

索引 api

 import axios from 'axios'; const API = axios.create({ baseURL: 'http://localhost:5000' }) export const fetchPosts = () => API.get('/posts'); export const createPost = (newPost) => API.post('/posts', newPost); export const likePost = (id) => API.patch(`/posts/${id}/likePost`); export const updatePost = (id, updatedPost) => API.patch(`/posts/${id}`, updatedPost); export const deletePost = (id) => API.delete(`/posts/${id}`); export const signIn = (formData) => API.post('/users/signin', formData); export const signUp = (formData) => API.post('/users/signup', formData);

 export const signup = async (req, res) => { const { email, password, confirmPassword, firstName, lastName } = req.body; try { const existingUser = await User.findOne({ email }); if(existingUser) return res.status(400).json({ message: "El usuaruio ya existe."}); if(password !== confirmPassword) return res.status(400).json({ message: "Las contraseñas no coinciden."}); const hashedPassword = await bcrypt.hash(password, 12); const result = await User.create({ email, password: hashedPassword, name: `${firstName} ${lastName}` }) // you have typo in next line const token = jwt.sing({ email: result.email, id: result._id }, 'test', { expiresIn: "1h" }); // replace it by: const token = jwt.sign({ email: result.email, id: result._id }, 'test', { expiresIn: "1h" }); res.status(200).json({ result, token}); } catch (error) { res.status(500).json({ message: 'Algo salio mal.' }); } }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM