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' }); } }
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
any error messages?
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
that sounds like a framework (express or whatever) issue moreso than prisma
Do you mind sharing your route file? How are you calling this API?