P
Prisma2mo ago
Noah

Retrieve user information

I try to create a user and store it in my db from the infomations that the user will enter on login information import { Request, Response } from 'express'; import bcrypt from 'bcryptjs'; import { PrismaClient } from '@prisma/client'; const prisma = new PrismaClient(); interface CreateUserRequest { email: string; userPassword: string; } export default async function handler(req: Request, res: Response) { if (req.method === 'POST') { const { email, userPassword }: CreateUserRequest = req.body; if (!email || !userPassword) { return res.status(400).json({ message: 'Email et mot de passe sont requis' }); } try { const hashedPassword = await bcrypt.hash(userPassword, 10);
const product = await prisma.user.create({ data: { email, userPassword: hashedPassword }, }); res.status(201).json(product); } catch (error) { console.error('Erreur de création de l'utilisateur:', error); res.status(500).json({ message: 'Erreur de création de l'utilisateur', error: error.message }); } } else { // Si la méthode HTTP n'est pas POST res.status(405).json({ message: 'Méthode non autorisée' }); } }
4 Replies
Yetzederixx
Yetzederixx2mo ago
any error messages?
Noah
NoahOP2mo ago
I managed to advance I have my model and my controller but there is just my way quio does not work : export const createUsers = async (name: string, email: string, hashedPassword: string) => { const newUser = await prisma.user.create({ data: { userName: name, email: email, userPassword: hashedPassword, }, }); return newUser; }; and export const createUsers = async (req: Request, res: Response) => { const { name, email, password } = req.body; // Validation basique : vérifier que les champs sont présents if (!name !email !password) { return res.status(400).json({ message: 'Nom, email et mot de passe sont requis.' }); } try { // Vérifier si l'email est déjà utilisé const existingUser = await prisma.user.findUnique({ where: { email: email, }, }); if (existingUser) { return res.status(400).json({ message: 'L'email est déjà utilisé.' }); } // Hashage du mot de passe const hashedPassword = await bcrypt.hash(password, 10); return res.status(201).json({ message: 'Utilisateur créé avec succès', user: createUsers }); } catch (error) { console.error('Erreur lors de la création de l'utilisateur:', error); return res.status(500).json({ message: 'Erreur serveur' }); } }; but I get a message when I try to create my router.post that tells me no overload matches this call
Yetzederixx
Yetzederixx2mo ago
that sounds like a framework (express or whatever) issue moreso than prisma
Nurul
Nurul2mo ago
Do you mind sharing your route file? How are you calling this API?

Did you find this page helpful?