This example shows how to implement a fullstack app in TypeScript with Next.js, MongoDB Atlas, and Prisma Client. It uses a MongoDB Atlas database with some initial dummy data.
Original source code: prisma/prisma-examples
Clone this repository:
git clone [email protected]:mongodb-developer/prisma-nextjs-example.git
Install npm dependencies:
npm install
If you don’t already have a free MongoDB Atlas account, it's easy to sign up.
Rename the .env.example
file to .env
and add your MongoDB Atlas connection string.
Run the following command to create and seed your MongoDB Atlas database. This also creates the User
and Post
collections that are defined in prisma/schema.prisma
:
npx prisma db seed
npm run dev
The app is now running, navigate to http://localhost:3000/
in your browser to explore its UI.
Expand for a tour through the UI of the app
Blog (located in ./pages/index.tsx
)
Signup (located in ./pages/signup.tsx
)
Create post (draft) (located in ./pages/create.tsx
)
Drafts (located in ./pages/drafts.tsx
)
View post (located in ./pages/p/[id].tsx
) (delete or publish here)
You can also access the REST API of the API server directly. It is running on the same host machine and port and can be accessed via the /api
route (in this case that is localhost:3000/api/
, so you can e.g. reach the API with localhost:3000/api/feed
).
/api/post/:id
: Fetch a single post by itsid
/api/feed
: Fetch all published posts/api/filterPosts?searchString={searchString}
: Filter posts bytitle
orcontent
/api/post
: Create a new post- Body:
title: String
(required): The title of the postcontent: String
(optional): The content of the postauthorEmail: String
(required): The email of the user that creates the post
- Body:
/api/user
: Create a new user- Body:
email: String
(required): The email address of the username: String
(optional): The name of the user
- Body:
/api/publish/:id
: Publish a post by itsid
/api/post/:id
: Delete a post by itsid
- Check out the Prisma docs
- Share your feedback in the
MongoDB Community