Una de las partes más cruciales del desarrollo de API en NodeJS es la creación de controladores para cada operación CRUD (Crear, Leer, Actualizar, Eliminar). Estos controladores son responsables de gestionar la lógica de negocio de cada operación e interactuar con la base de datos MongoDB. En este capítulo, detallaremos el proceso de creación de estos controladores.
Crear controlador
El controlador Crear es responsable de crear nuevos registros en la base de datos. En NodeJS, esto se hace usando la función 'guardar' de la plantilla Mongoose. El código para un controlador Crear podría verse así:
exportaciones.create = function(req, res) { var nuevoRegistro = nuevo Modelo(req.body); nuevoRecord.save(función(err, grabar) { si (errar) { res.enviar(err); } res.json(registro); }); };
Este código crea un nuevo registro utilizando los datos recibidos en la solicitud HTTP y luego guarda el registro en la base de datos. Si ocurre un error durante este proceso, será detectado y enviado como respuesta. De lo contrario, el nuevo registro se envía como respuesta.
Leer controlador
El controlador de lectura es responsable de leer los registros de la base de datos. Esto se puede hacer usando la función 'buscar' de la plantilla Mongoose. El código para un controlador de lectura podría verse así:
exportaciones.read = function(req, res) { Model.find({}, función(err, registros) { si (errar) { res.enviar(err); } res.json(registros); }); };
Este código lee todos los registros de la base de datos y los envía como respuesta. Si se produce un error durante este proceso, se detectará y se enviará como respuesta.
Actualizar controlador
El controlador de actualización es responsable de actualizar los registros existentes en la base de datos. Esto se puede hacer usando la función 'findByIdAndUpdate' de la plantilla Mongoose. El código para un controlador de actualización podría verse así:
exportaciones.actualización = función (req, res) { Model.findByIdAndUpdate(req.params.id, req.body, {nuevo: verdadero}, función(err, registro) { si (errar) { res.enviar(err); } res.json(registro); }); };
Este código actualiza un registro específico, identificado por el ID pasado como parámetro en la solicitud HTTP. Los nuevos datos para el registro se pasan en el cuerpo de la solicitud. Si ocurre un error durante este proceso, será detectado y enviado como respuesta. De lo contrario, el registro actualizado se envía como respuesta.
Eliminar controlador
El controlador de eliminación es responsable de eliminar registros de la base de datos. Esto se puede hacer usando la función 'findByIdAndRemove' de la plantilla Mongoose. El código para un controlador Eliminar podría verse así:
exportaciones.eliminar = función (req, res) { Model.findByIdAndRemove(req.params.id, función(err, registro) { si (errar) { res.enviar(err); } res.json({ mensaje: 'Registro eliminado exitosamente' }); }); };
Este código elimina un registro específico, identificado por el ID pasado como parámetro en la solicitud HTTP. Si ocurre un error durante este proceso, será detectado y enviado como respuesta. De lo contrario, se envía un mensaje de éxito como respuesta.
En resumen, crear controladores para cada operación CRUD en NodeJS implica definir funciones que manejan solicitudes HTTP e interactúan con la base de datos MongoDB. Cada controlador es responsable de una operación CRUD específica y debe hacer frente a los posibles errores que puedan ocurrir durante el proceso.