Bienvenidos sean a este post, hoy continuaremos con las notas.
En el post anterior no solo establecimos la parte encargada de controlar los datos mediante models sino tambien hemos creado la clase que se encargara de manipular las notas, si bien lo hemos probado mediante node aun no tenemos donde almacenarlo y para ello vamos a hacer algo poco practico pero que nos servira para trabajar de forma sencilla con nuestra aplicacion, por el momento, y para ello necesitaremos la aplicacion creada y que modificamos en el post anterior, sino lo poseen les dejo un link para descargarlo:
Esto simplemente deben extraerlo en la pc y podran trabajar sin ningun inconveniente, con esto realizado nuestro siguiente paso sera ir al directorio models y crearemos un nuevo archivo con el nombre de notas-memoria.mjs y le agregaremos el siguiente codigo:
models/notas-memoria.mjs
import { Nota, AlmacenNotasAbs } from './Notas.mjs';
const notas = [];
export class NotasEnMemoria extends AlmacenNotasAbs {
async cerrar() {}
async create(clave, titulo, cuerpo) {
notas[clave] = new Nota(clave, titulo, cuerpo);
return notas[clave];
}
async read(clave) {
if (notas[clave]) return notas[clave];
else throw new error(`Nota ${clave} no existe`);
}
async update(clave, titulo, cuerpo) {
notas[clave] = new Nota(clave, titulo, cuerpo);
return notas[clave];
}
async delete(clave) {
if (notas[clave]) {
delete notas[clave];
} else {
throw new error(`Nota ${clave} no existe`);
}
}
async listarClaves() {
return Object.keys(notas);
}
async contar() {
return notas.length;
}
}
Primero importaremos las clases que definimos en el archivo Notas.mjs para despues definir un array llamado notas pero vacio, lo siguiente sera tomar la clase abstracta llamada AlmacenNotasAbs y la convertiremos en la clase madre de otra llamada NotasEnMemoria, en este caso lo que haremos sera definir los metodos que simplemente declaramos en la clase madre, que no son otra cosa que los prototipos en otros lenguaje, por lo pronto seguiremos dejando a cerrar sin definir pero si definiremos al resto, observen que para el caso de create y update son iguales porque estableceremos la clave de la nota y en ella crearemos una nueva para el caso de create hara una nota nueva y para el caso de update la modificara y en ambos devolveremos la nota en cuestion, luego tenemos read donde verificara si existe y en caso de ser verdadero la devolvera sino lanzara un error identificando que esta no existe, y para finalizar el CRUD tenemos a delete donde tambien verifica si existe la nota y en caso de ser asi procede a eliminarla de lo contrario nos notificara mediante el lanzamiento de un error que tal nota no existe.
Con esto terminamos nuestro archivo encargada de crear las notas en memoria para poder almacenarlas y recuperarlas, nuestro siguiente paso sera volver al archivo app.mjs y en la parte superior donde tenemos la importacion de los modulos agregaremos la siguiente linea:
import { NotasEnMemoria } from './models/notas-memoria.mjs';
Esta sera la encargada de importar el modulo que creamos anteriormente y nuestra siguiente modificacion sera los objetos que permitiremos exportar y agregaremos la siguiente linea:
export const NotasMem = new NotasEnMemoria();
Con esto ya tenemos como trabajar con las notas pero todavia no esta operativo por el momento, antes de finalizar les dejo un archivo con todo el codigo de nuestro proyecto hasta ahora:
En resumen, hoy hemos creado una clase para almacenar nuestras notas pero en este caso por un tema de practicidad solamente en memoria, si bien no es lo practico y util si nos sera para ver como trabaja, espero les haya sido interesante sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.


Donación
Es para mantenimento del sitio, gracias!
$1.50
