Creando un api rest con node.js y mongodb
Trabajar construyendo APIS es la forma más moderna y actual de desarrollar software de una forma eficiente. En este artículo os enseñare a construir un API rest usando express, un framework basado en node.js y mongoose un ODM para trabajar con la base de datos mongodb.
Instalación de componentes
Antes de lanzarnos a programar debemos instalar las dependencias, no voy a entrar mucho en detalle pero os indicaré los componentes a descargar y que guías seguir.
- Mongodb: Es la base de datos que utilizaremos, es una base de datos NOSQL que nos permite realizar aplicaciones de una forma muy ágil. Las instrucciones de cómo descargarla e instalarla las encontrareis en su página web, pinchando aquí .
- Express.js: Express es un framework basado en node.js que nos facilitará muchísimo nuestro trabajo. Podéis seguir las instrucciones de descarga aquí. También os recomiendo instalar su herramienta de generación de proyectos, con la orden npm install express-generator -g.
Creación de estructura básica
Una vez que tenemos instalado express así como su herramienta, ejecutamos la orden express exampleApiMongodb, que nos creará la carpeta exampleApiMongodb con la estructura de un proyecto de express.Este comando ya nos genera una aplicación base que arranca perfectamente usando la orden npm start. El código base para el arranque de la aplicación se encuentra en el archivo app.js, por lo que no os recomendaría modificar este archivo salvo para añadir alguna dependencia
Definición de modelos y conexión a base de datos
Antes de nada, instalamos nuestro ODM Mongoose con la orden npm install mongoose --save
.
En el archivo app.js incluimos las siguientes líneas de código, que nos permitirán conectar con la base de datos mongodb.
Después, comprobamos que nuestra conexión es correcta, de la siguiente forma:
Creamos el directorio models y dentro generamos un archivo person.js con el siguiente código: En este caso hemos definido un modelo Person con los campos displayName, phone, pic y mail, hemos marcado displayName como campo requerido y que tenga una longitud mínima de 3 caracteresDefinición de rutas
Las rutas definirán los path a los que se podrá llamar de nuestra aplicación y en ellas se encontrará la lógica a ejecutar. Creamos dentro de la carpeta routes un archivo person.js con el siguiente código: Como podemos ver en la primera línea lo que hacemos es importar el modelo Person, luego definimos una ruta del estilo ‘/:id’ en donde id será el identificador a buscar.Dentro de la ruta llamamos al método findById con el id recibido y devolvemos el resultado en formato JSON.Por último, cargamos las rutas en la aplicación, añadiendo estas lineas al archivo app.js: En este código cargamos la ruta anterior definiendo el path /person como ruta de acceso a sus métodos.El método findById de mongoose nos buscará en la colección de personas aquella cuyo campo interno '_id' coincida con el suministrado.