Building a REST API with Node.js and Prisma ORM
Node.js is a popular JavaScript runtime that is commonly used to build server-side web applications. Prisma ORM is a modern database toolkit that simplifies database access in Node.js applications. In this article, we’ll explore how to build a REST API using Node.js and Prisma ORM.
Setting Up Node.js and Prisma ORM
Before we can start building our REST API, we need to set up Node.js and Prisma ORM. First, make sure you have Node.js installed on your machine. You can download it from the official Node.js website. Once Node.js is installed, you can create a new Node.js project using npm:
npm init -y
Next, we need to install Prisma ORM and its dependencies:
npm install @prisma/client prisma
Creating a Prisma Schema
Prisma ORM uses a schema to define the database model. Create a new file called schema.prisma
and define your database model using Prisma’s schema language. For example:
model User {
id Int @id @default(autoincrement())
name String
email String @unique
posts Post[]
}
model Post {
id Int @id @default(autoincrement())
title String
content String
author User @relation(fields: [authorId], references: [id])
authorId Int
}
Creating a Node.js Server
Now that we have our database model defined, we can start building our Node.js server. Create a new file called server.js
and use the express
and @prisma/client
packages to create a REST API that interacts with our database model. Here’s a basic example to get you started:
const express = require('express');
const { PrismaClient } = require('@prisma/client');
const prisma = new PrismaClient();
const app = express();
app.get('/users', async (req, res) => {
const users = await prisma.user.findMany();
res.json(users);
});
app.post('/users', async (req, res) => {
const { name, email } = req.body;
const user = await prisma.user.create({
data: {
name,
email,
},
});
res.json(user);
});
app.listen(3000, () => {
console.log('Server is running on port 3000');
});
Conclusion
In this article, we explored how to build a REST API using Node.js and Prisma ORM. With Node.js, Prisma ORM, and the express
package, you can quickly and easily create a powerful and scalable REST API for your web applications. Happy coding!
Hola que tal? Muy buen video, consulta. En el caso de hacer un get teniendo una api rest y la respuesta devuelva ejemplo 50.000 registros, conviene hacer una sola llamada y luego manejar la data desde el front end , hacer paginacion en el Backend y al hacer la llamada que nos diga cuantas páginas y registros tenemosbe ir haciendo una llamada por página o que otro método? Muchas gracias
el problema que he tenido con strapi es que pide muchos recursos, prisma cuanto pide de ram y procesador?
Excelente video. Que tema usas de VS Code?
Es excelente tu contenido y muy útil, en la empresa en la que estoy estamos por desarrollar de cero el backen para un sistema nuevo y esto me ayuda un montón! Muchas gracias Fazt, sos un genio
24:45 dalto?
👏🏽
¿Cuál es el tema que usas? 🙁
Amigo, cómo puedo hacer que ese backend se muestre en un frontend? Quisiera aprender mucho más de esto y que ya se pueda aplicar botones y demás…
muito obrigado
Gracias por tanto Fazt <3
Hola Fazt, estoy intentando user Prisma con Tauri para una aplicacion de escriorio basica, y sinceramente no lo he conseguido aun, algún consejo o hay algún video o pagina que lo explique y pueda sacar la info, muchas gracias!
Se puede hacer un where de la tabla padre y hija ?
pero no puedo tener los modelos de cada entidad por separado??
Ni he visto el video y ya le di like, este tipo es una bestia
que locura lo de añadir cosas al modelo
gracias por compartirnos tanto conocimiento!
recomendadisimo
Gracias Fazt!! Le tenia muchas ganas a aprender Prisma y que sacarás un tutorial 😀 Genial! Aunque me le tenia miedo pq pensaba que era solo con TypeScript jeje, genial ver que también funciona con JavaScript 🙂 Aunque lo que dices de un día hacer el tutorial con typescript se recibirá con placer 😉 Una pregunta, cuando haces la prueba con thunder client miras el esquema y dices que no hay ninguno requerido, entiendo, pero luego dices "quiero decir en null, perdón" y la frase me ha perdido 😛 Pero todo super genial y más que genial!
Amigo Fazt muchas gracias, tengo una duda, sobre el manejo de las fechas, al usa now() como valor por defecto, está guardando en base de datos la fecha mundial, cómo puedo hacer para que se guarden la fecha de Colombia, lo he intentado sin resultados
Seria buena prisma + nexjs