DEV Community

ivkeMilioner
ivkeMilioner

Posted on • Edited on

Problem with req. query;

I'm trying to pull data from a document containing a logged-in user from the MongoDB database. However, req. query doesn't seem to pass.

API:

export default async function handler(req, res) {
  const client = await clientPromise;
  const db = client.db("USERS");
  const { userName } = req.query;
  switch (req.method) {
  case "POST": {
    const bodyObject = JSON.parse(req.body);
    const query = {
      user: bodyObject.user,
      avatar: bodyObject.avatar,
      level: bodyObject.level,
    };
    const update = { $set: { score: bodyObject.score } };
    const options = { upsert: true };

    const newScore = await db
      .collection("USERS")
      .findOneAndUpdate(query, update, options);

    res.json(newScore);
    break;
  }
  case "GET": {
    const users = await db
      .collection("USERS")
      .find({ user: { $in: [userName] } })
      .toArray();
    res.json(users);
    break;
  }

  default: {
    // do nothing
  }
  }
}
Enter fullscreen mode Exit fullscreen mode

COMPONENT:

import styles from '../styles/Elements.module.css';
import clientPromise from '../lib/mongodb';


export default function ScoreHeader({ users }) {
  console.log(users)

  return (
    <div className={styles.containerIndex}>
     fadsfds
    </div>
  );
}

export async function getServerSideProps({}) {
  const client = await clientPromise;
 const db = client.db('USERS');

  const res = await fetch(`http://localhost:3000/api/usersAPI`, {
    method: 'GET',
    headers: {
      'Content-Type': 'application/json',
    },
  });
  const users = await res.json();

  return {
    props: { users },
  };
}
Enter fullscreen mode Exit fullscreen mode

Top comments (0)