API REST con Node.js y Express | CRUD
En este artÃculo vamos a hablar sobre cómo crear una API RESTful con Node.js y Express, y cómo realizar las operaciones CRUD (Crear, Leer, Actualizar, Borrar) en una base de datos.
¿Qué es una API RESTful?
Una API RESTful es una arquitectura de software que utiliza un conjunto de restricciones para crear servicios web. Estas restricciones, como el uso de HTTP para la transferencia de datos y la separación entre el cliente y el servidor, permiten que las aplicaciones se comuniquen de manera eficiente y escalable.
Usando Node.js y Express para crear una API RESTful
Node.js es un entorno de ejecución de JavaScript del lado del servidor que utiliza un modelo de E/S sin bloqueo y dirigido por eventos, lo que lo hace ideal para la creación de APIs RESTful. Express, por otro lado, es un marco de aplicación web de Node.js que facilita la creación de rutas, manejo de solicitudes y respuesta, y gestión de middleware.
Operaciones CRUD con Node.js y Express
Para realizar operaciones CRUD en una base de datos utilizando Node.js y Express, necesitaremos utilizar un ODM (Object-Document Mapping) como Mongoose para conectarnos a la base de datos y realizar las operaciones de creación, lectura, actualización y eliminación de datos.
Ejemplo de código
const express = require('express');
const mongoose = require('mongoose');
const app = express();
// Conexión a la base de datos
mongoose.connect('mongodb://localhost:27017/api_rest', { useNewUrlParser: true, useUnifiedTopology: true });
// Definición del esquema
const schema = new mongoose.Schema({
nombre: String,
edad: Number
});
const Modelo = mongoose.model('Modelo', schema);
// Rutas para realizar operaciones CRUD
app.get('/modelo', async (req, res) => {
const modelos = await Modelo.find();
res.json(modelos);
});
app.post('/modelo', async (req, res) => {
const modelo = new Modelo(req.body);
await modelo.save();
res.json(modelo);
});
app.put('/modelo/:id', async (req, res) => {
const modelo = await Modelo.findById(req.params.id);
Object.assign(modelo, req.body);
await modelo.save();
res.json(modelo);
});
app.delete('/modelo/:id', async (req, res) => {
await Modelo.findByIdAndDelete(req.params.id);
res.send('Modelo eliminado');
});
app.listen(3000, () => {
console.log('Servidor en ejecución en el puerto 3000');
});
Conclusión
Crear una API RESTful con Node.js y Express es un proceso sencillo y poderoso que nos permite interactuar con una base de datos de manera eficiente. Con las operaciones CRUD, podemos realizar las acciones fundamentales para gestionar los datos de nuestra aplicación de manera simple y consistente.
excelente muy claro los conceptos, q extensión usas para auto complementar la documentación ya trabajada.
Sos un crack y por ti estaré dentro en el aprendizaje de Node porque te entiendo todo pero, hay algo que me tiene muy alarmado, es la decima quizá intentona de instalar Nodemon u otro plug que reinicialice el servidor y refleje en navegador los cambios pero no tengo suerte, lo hice siguiendo hasta tus comas en un proyecto nuevo y de nuevo no funciona, dice que nodemon o mejor mira el output, es una pesadilla de meses y quizá años que esas herramientas de auto actualizado no me funcionen, es mi pc?
“`
upper@DESKTOP-6JTLCIP:/mnt/c/Users/Usuario/Codes/beta/node/simple-api$ npm run dev
> simple-api@1.0.0 dev
> nodemon index.js
[nodemon] 3.0.1
[nodemon] to restart at any time, enter `rs`
[nodemon] watching path(s): .
[nodemon] watching extensions: js,mjs,cjs,json
[nodemon] starting `node index.js`
Servidor escuchando en .4321
rs
“`
Al hacer un cambio en index.js otra vez no pasó para mà la promesa de Node…
EXCELENTE amigo!!.. gracias.
Gracias compa , jsto vengo del video del despliegue , a ver cuando hacemos una api con ts y tests , uun saludo maestro 👑👑
Muy buen video hermano, muchas gracias!
Ayer me vi el video de "API con Node.js, Express y MongoDB Atlas", y hoy este. Estoy aprendiendo muchÃsimo 😀
Tengo una pregunta:
Si quisiera enviar http requests desde una computadora que no esté en mi red local, cómo puedo hacer? Hay algún video en el que hayas explicado algo parecido?
Muchas gracias hermano!
Exelente bro!