Prisma: Argument email is missing
Unanswered
Philadelphia Vireo posted this in #help-forum
Philadelphia VireoOP
Hi! I'm currently trying to add a user to the database using Prisma. However, im getting a error "Argument email is missing" - while im definitely giving the email with the request.
3 Replies
Philadelphia VireoOP
users.ts :
ts
import { NextApiRequest, NextApiResponse } from "next";
import { PrismaClient } from "@prisma/client";
const prisma = new PrismaClient();
const jwt = require("jsonwebtoken");
const secretKey = "aabbb342";
// function to generate token
function generateToken(userId: any) {
const token = jwt.sign({ userId }, secretKey, { expiresIn: "1h" });
return token;
}
const validate = (
req: NextApiRequest,
res: NextApiResponse,
next: Function
) => {
// get auth token
const authToken = (req.headers.authorization || "").split("Bearer ").at(1);
if (!authToken) {
res.status(401).json({ message: "Token is missing" });
}
// check if auth token is the same as the currently stored token for the logged in user
if (authToken !== "aaa") {
return res
.status(200)
.json({ message: "Validating the token was unsuccessful" });
}
next();
};
export default async function handler(
req: NextApiRequest,
res: NextApiResponse
) {
switch (req.method) {
case "POST":
validate(req, res, () => {
res.status(200).json({ message: "Method POST validated" });
});
break;
case "PUT":
try {
const { username, email, password } = req.body;
console.log(req.body);
const newUser = await prisma.user.create({
data: {
username: username,
password: password,
email: email,
},
});
res
.status(200)
.json({ message: "User created success", user: newUser });
} catch (e) {
console.error(e);
res.status(500).json({
message: "No success haha",
error: e,
});
}
break;
// login
case "GET":
// todo : remove development shi
let dev = req.headers;
let token = generateToken(req.headers.un);
res.status(200).json({ message: "Logged in", token: token });
break;
}
}prisma schema:
// This is your Prisma schema file,
// learn more about it in the docs: https://pris.ly/d/prisma-schema
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "mysql"
url = env("DATABASE_URL")
}
model Post {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
title String @db.VarChar(255)
content String?
published Boolean @default(false)
author User @relation(fields: [authorId], references: [id])
authorId Int
}
model User {
id Int @id @default(autoincrement())
email String @unique
username String
password String
posts Post[]
}The error: Argument
email is missing.