Ошибка при выводе данных с mongoDB

Всем привет!

Изучаю сама Next.JS и столкнулась с проблемой при работе с базой данных.

Хочу сделать сайт на котором будут выводиться фильмы из бд которую я создала в MongoDB. На первой странице все выводиться как надо

Код первой страницы:

import Link from "next/link"

export default function Users({ users }) {

    return (
        <div>
            {users.map((user) => (
                <Link href={`users/${user._id}`} key={user.id}>
                    <a >
                        <div >
                            <div>{user.title}</div>
                        </div>
                    </a>
                </Link>
            ))}
        </div>
    )
}

export async function getStaticProps(context) {
    const response = await fetch(`http://localhost:3000/api/movies`)
    const users = await response.json()

    console.log(users)
    return {
        props: { users: users }
    }
}

То что я хочу сделать это при нажатие на линк, чтоб можно было перейти на другую страницу и получить дополнительные данные о фильме. У меня получаеться передать ID обьекта, но у меня два варианта проблемы. В первом варианте выходит ошибка, во втором нет ошибки но данные не выводяться на страницу.

Варинат Первый. При котором выходит ошибка:

FetchError: invalid json response body at http://localhost:3000/api/movies/60d5b904898633feb93d293e reason: Unexpected token < in JSON at position 0

Код страницы:

import { useRouter } from "next/router";

export default function ({ movie }) {
    const { query } = useRouter();

    return (
        <div>
            <div>Users {query.id}</div>
            <div>Name {movie.name}</div>
        </div>
    )
}

export async function getServerSideProps({ params }) {
    console.log({ params })
    const response = await fetch(`http://localhost:3000/api/movies/${params.id}`)

const movie = await response.json()
    console.log(movie)
    return {
        props: { movie: movie }
    }
}

Вариант второй. В нем ошибок нет, но не выводяться данные вообще:

import { useRouter } from "next/router";

export default function ({ movie }) {
    const { query } = useRouter();

    return (
        <div>
            <div>Users {query.id}</div>
            <div>Name {movie.name}</div>
        </div>
    )
}

export async function getServerSideProps({ params }) {
    console.log({ params })

    const response = await fetch(`http://localhost:3000/api/movies/${params.id}`)
    const movie = JSON.parse(JSON.stringify(response));

    console.log(movie)
    return {
        props: { movie: movie }
    }
}

Буду рада помощи, уже пару дней пытаюсь найти решения вопроса и пока что не совсем удачно. Есть вариант сделать проект с API, но хотелось бы все таки знать как работать с MongoDB


Ответы (0 шт):