Next.js Discord

Discord Forum

Prisma: Argument email is missing

Unanswered
Philadelphia Vireo posted this in #help-forum
Open in Discord
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.