1 00:00:01,070 --> 00:00:22,100 Bueno, este vídeo lo voy a hacer como un anexo al vídeo anterior, un poco para aclarar diferentes conceptos que estamos usando, que vamos a usar a lo largo de todo el curso, 2 00:00:22,100 --> 00:00:35,840 y que, por ejemplo, con lo que son los JSON, bueno, pues que cuando os he hablado del package JSON, que entendáis un poco más qué es esto, ¿vale? 3 00:00:35,840 --> 00:00:52,840 qué es una colección, qué es un documento, ¿vale? Qué tipos de datos podemos guardar, porque casi siempre guardamos un string, ¿vale? 4 00:00:52,859 --> 00:01:03,700 Pero también podemos guardar un integer, un float, un date, un pull, ¿vale? Entonces, bueno, ver un poco todo eso, hasta lo que llevamos ahora mismo hecho, 5 00:01:03,700 --> 00:01:17,000 que no es mucho, ¿vale? Y también aclarar un poco el tema del Node, que como ya os comenté, a mí me parece una herramienta 6 00:01:17,000 --> 00:01:27,459 pues que está bien para cuando estás empezando a trabajar con un backend y un front, porque al final estamos cargando módulos 7 00:01:27,459 --> 00:01:47,140 que son del propio de Node, Node.js, ¿vale? del Node.js, bueno y eso es lo que estamos haciendo ahora, entonces fijaros que hemos instalado o hemos cargado y utilizado el express, 8 00:01:47,140 --> 00:02:09,000 hemos cargado y utilizado el no demon, ¿vale? El no demon para que cuando hacemos un cambio en nuestro código, como desarrolladores, 9 00:02:09,000 --> 00:02:24,000 se refleje sin tener que estar abriendo y cerrando en el backend, en el servidor. Hemos instalado también o hemos cargado, si vamos a la ppjs, el morgan. 10 00:02:24,000 --> 00:02:49,060 El Morgan, ¿qué es lo que hace? Nos daba un aviso en el terminal cada vez que había una conexión desde el front al backend a través de un endpoint, que nos daba el Canon Get, nos daba el código 404, que es que no encuentra el servicio, porque claro, no hay nada, no hemos desarrollado ningún servicio. 11 00:02:49,060 --> 00:03:04,199 ¿Vale? Entonces, como nos da el código 404, eso significa, pues, que está bien. ¿Vale? Entonces, sí os quería comentar, cuando hemos utilizado, para que veáis, ¿vale? 12 00:03:04,199 --> 00:03:23,719 cómo va evolucionando esto y cómo se va trabajando sobre el backend. Para ver esos cambios, lo diré, esos cambios que estamos haciendo sobre el código, 13 00:03:23,719 --> 00:03:25,020 para verlo 14 00:03:25,020 --> 00:03:31,659 que se ejecuten directamente en el servidor 15 00:03:31,659 --> 00:03:33,199 hemos usado el no demon 16 00:03:33,199 --> 00:03:37,020 con el no demon 17 00:03:37,020 --> 00:03:41,900 se queda un poco antiguo 18 00:03:41,900 --> 00:03:45,719 y sacaron otro módulo 19 00:03:45,719 --> 00:03:47,240 que es el watch 20 00:03:47,240 --> 00:03:49,860 el watch lo que te hace es que 21 00:03:49,860 --> 00:03:53,460 no hay que instalar, no hay que meter el 22 00:03:53,460 --> 00:03:57,460 npm i nodemon, ¿vale? Es un módulo 23 00:03:57,460 --> 00:04:01,400 que ya viene en el core, en el núcleo de 24 00:04:01,400 --> 00:04:02,639 node.js 25 00:04:02,639 --> 00:04:09,479 y como tal, ya como ventaja, ya no 26 00:04:09,479 --> 00:04:13,180 tengo una dependencia sobre un módulo, ya lo tengo ahí, ¿vale? 27 00:04:13,219 --> 00:04:17,339 No tengo que hacer ningún tipo de instalación, entonces, si os fijáis aquí 28 00:04:17,339 --> 00:04:32,339 en el package json, en la parte del script, ¿no? En esta colección, bueno, en este clave valor, he metido un dep y he metido un dep2. 29 00:04:32,839 --> 00:04:45,060 En el dep, que es con lo que terminamos el otro día, me parece, metíamos el nodemon src index js, haciendo la instalación del nodemon, ¿vale? 30 00:04:45,060 --> 00:05:04,800 Entonces, aquí para arrancarlo, le decíamos desde el terminal el npm run dev, ¿vale? Y entonces nos arrancaba el express en el puerto que le habíamos dicho, ¿vale? Y esto estaba bien. 31 00:05:04,800 --> 00:05:28,600 Entonces ahora fijaros que si lo arranco con dev2, meto el watch, ¿vale? En este caso el comando, el script, ¿vale? El valor que estoy metiendo a esta clave, a dev2, es node, guión medio, guión medio, watch, src index js, ¿vale? 32 00:05:28,600 --> 00:05:32,199 Llamo al mismo fichero, pero en vez de con no demon, con watch, ¿vale? 33 00:05:33,160 --> 00:05:38,759 Entonces, si aquí ponemos el npm room depth 2, ¿vale? 34 00:05:39,240 --> 00:05:42,040 Va a ser, nos va a funcionar exactamente igual. 35 00:05:42,220 --> 00:05:48,680 No estamos usando el no demon, no estamos usando una dependencia con lo que será mucho más eficiente. 36 00:05:49,860 --> 00:05:52,879 Es un módulo más nuevo, ¿vale? 37 00:05:52,879 --> 00:06:11,220 Y un poco lo que quiero que veáis con esto es que nosotros vamos a usar los módulos que usemos y que probablemente en algunos casos se pueden usar otro tipo de modelos, ¿vale? Lo que es interesante de todo esto es que entendáis el funcionamiento y que cojáis esa lógica. 38 00:06:11,220 --> 00:06:17,600 Luego, a partir de ahí, obviamente, pues ya sabéis lo que es la informática, que va a ir evolucionando en un sentido o en otro. 39 00:06:18,980 --> 00:06:28,350 Vale, entonces, me meto con el tema de lo que es un Json, ¿vale? 40 00:06:29,629 --> 00:06:32,509 O lo que son las bases de datos de MongoDB. 41 00:06:32,509 --> 00:06:54,930 Vale, entonces, para ver esto, pues lo primero que vamos a pensar cuando usamos una base de datos de MongoDB es que no es una base de datos relacional, ¿vale? 42 00:06:54,930 --> 00:07:14,230 No es una base de datos relacional, no es MySQL, no se usan tablas ni registros, ¿vale? Es una base de datos que se crea por su mayor eficiencia en la velocidad y por su escalabilidad, ¿vale? 43 00:07:14,230 --> 00:07:33,990 ¿Qué significa esto? Cuando nosotros estamos trabajando con bases de datos de SQL, nosotros trabajamos con tablas y con registros, ¿vale? Y esos registros tienen siempre los mismos campos y las tablas tienen n registros, ¿vale? 44 00:07:33,990 --> 00:07:59,250 Nosotros cuando trabajamos con MongoDB lo que creamos son documentos, bueno, lo que sería una tabla en una base de datos SQL en MongoDB sería una colección, ¿vale? 45 00:07:59,250 --> 00:08:18,920 Lo que sería un registro en una base de datos relacional en MongoDB es un documento, ¿vale? 46 00:08:18,920 --> 00:08:48,190 Entonces, ¿por qué lo de la escalabilidad? Porque esos documentos se van a crear con dos valores, ¿vale? Se va a crear siempre uno que es clave y otro que es valor, ¿vale? 47 00:08:48,190 --> 00:09:08,250 Entonces se van a ir metiendo siempre en clave, valor, clave, valor, clave, valor. ¿Por qué lo de la escalabilidad? Porque esas colecciones de documentos, dentro de esos documentos, los campos clave, valor que podemos meter no tienen por qué ser siempre los mismos. 48 00:09:08,250 --> 00:09:37,529 O sea, no tiene por qué ser siempre como los registros de las bases de datos relacionales, ¿vale? Entonces, por ejemplo, yo puedo tener un documento que sea siempre, ¿vale? Vamos a ir abriendo ya entre llaves y esto sería, esto sí, vamos a quitarle las viñetas, sería, por ejemplo, no sé, título, ¿vale? 49 00:09:37,529 --> 00:10:13,399 Con un valor. Dan 2. Vale, le meto asunto. Asunto. Y es Villablanca. Le metemos categoría. Vamos a meter aquí grado superior. Vale. 50 00:10:13,399 --> 00:10:33,399 Y esto cerraría este documento, ¿vale? Esto sería un documento de todo el, de la colección, ¿vale? Ese documento, por ejemplo, si quiero meter otro en la misma colección, ¿vale? 51 00:10:33,399 --> 00:11:14,360 Que es lo interesante. Puedo hacer otro que sea, por ejemplo, con más campos, pues que sea el título. Y le metemos tan dos. Le metemos el asunto y le vamos a meter, por ejemplo, fecha. 52 00:11:14,360 --> 00:11:34,059 Por ejemplo, ¿vale? Y aquí va a ser de tipo date, ¿vale? Y esto lo cerraríamos ahora, ¿vale? Entonces, fijaros cómo estos dos documentos tienen diferente número de campos, ¿vale? 53 00:11:34,059 --> 00:11:56,820 Entonces, esto nos lo permite hacer MongoDB, ¿vale? Entonces, esto es un documento de MongoDB y con lo que trabajamos en nuestro backend va a ser con documentos que es en formato BSON, ¿vale? 54 00:11:56,820 --> 00:12:24,720 Que es, pues, JSON, la traducción es Javascript Object Notation, ¿vale? Y el M, perdón, el M, el BSON es el Binary Script Object Notation, ¿vale? 55 00:12:24,720 --> 00:12:41,200 Bueno, luego para bases de datos relacionales sabéis que existe un lenguaje de consultas, de queries, que es el SQL, que la traducción es el Structured Query Language, ¿vale? 56 00:12:41,200 --> 00:12:53,799 Entonces, para MongoDB existe el MQL, ¿vale? Que es el MongoDB Query Language, ¿vale? 57 00:12:54,580 --> 00:13:04,360 Entonces, bueno, pues es otra diferencia. El MQL es muy parecido al SQL. 58 00:13:04,360 --> 00:13:24,179 De hecho, una sentencia, por ejemplo, de insertar valores, ¿vale? Podríamos verla como dbUser, por ejemplo. Quiero insertar un documento nuevo en una colección que se llama user, ¿vale? 59 00:13:24,179 --> 00:13:47,610 Entonces tengo db.user, db es la conexión, es la variable de la conexión que he utilizado, la variable para hacer la conexión con MongoDB, ¿vale? Le pones la colección donde quieres insertar ese documento, le dices que es lo que quieres hacer, el insert one, ¿vale? 60 00:13:47,610 --> 00:13:56,250 y aquí empiezas a meter pues los valores que sean pues en este caso pues 61 00:13:58,009 --> 00:14:23,490 vamos a poner lo mismo y aquí pues cerraríamos la llave vale entonces 62 00:14:23,490 --> 00:14:31,730 aquí le hemos puesto esto esto me ha puesto que esta viñeta que no la quiero 63 00:14:31,730 --> 00:14:44,090 y aquí me faltaría cerrar el paréntesis vale ya lo tenemos vale entonces esta sería una consulta 64 00:14:45,789 --> 00:14:59,769 de inserción con el lenguaje mql del mongo db vale bueno entonces un poco lo que quería que 65 00:14:59,769 --> 00:15:06,669 vierais con esto e insisto esto lo vais a ver con mucha más profundidad con miguel y es la forma con 66 00:15:06,669 --> 00:15:17,450 la que estamos pasando datos de un de un sitio a otro de una aplicación a otra vale es interesante 67 00:15:17,450 --> 00:15:27,649 que la entendáis bien que no nos uséis pues un jota son para luego convertirlo y a un documento 68 00:15:27,649 --> 00:15:31,710 de Mongo e insertarlo en una colección igual que si fuera 69 00:15:31,710 --> 00:15:35,309 una base de datos estructural, estructurada, vale 70 00:15:35,309 --> 00:15:38,549 un MySQL, que en eso soléis caer mucho 71 00:15:38,549 --> 00:15:43,250 en el TFG, en la defensa del proyecto 72 00:15:43,250 --> 00:15:47,529 y eso es un error, vale, tenéis que entender bien 73 00:15:47,529 --> 00:15:51,570 estas pinceladas que os he dado yo aquí, vale, que yo 74 00:15:51,570 --> 00:15:55,409 las doy porque vamos a estar trabajando con ellas 75 00:15:55,409 --> 00:15:59,529 cada vez que usamos el Json, el package Json 76 00:15:59,529 --> 00:16:02,129 o cada vez que vayamos a enviar datos 77 00:16:02,129 --> 00:16:04,950 desde el front al backend 78 00:16:04,950 --> 00:16:09,129 entonces bueno, entendía que es importante 79 00:16:09,129 --> 00:16:10,049 que lo conozcáis 80 00:16:10,049 --> 00:16:15,210 para instalar el MongoDB 81 00:16:15,210 --> 00:16:16,850 que es con lo que vamos a trabajar ahora 82 00:16:16,850 --> 00:16:18,309 bueno 83 00:16:18,309 --> 00:16:23,090 la página web es esta 84 00:16:23,090 --> 00:16:24,509 la que os estoy enseñando ahora 85 00:16:24,509 --> 00:17:03,159 Vale, esta página, podéis bajaros el MongoDB Atlas e instalarlo en vuestros equipos, en casa, vale, aquí el problema que tenemos en el instituto es que este link, esta URL está capada. 86 00:17:03,159 --> 00:17:10,119 Entonces no podemos trabajar directamente sobre el MongoDB Atlas, que sería muy cómodo. 87 00:17:10,240 --> 00:17:12,519 ¿Qué es lo que vamos a hacer? 88 00:17:12,960 --> 00:17:24,799 Instalar Docker, el Docker de escritorio, bajarnos el contenedor de MongoDB y trabajar sobre Docker. 89 00:17:25,619 --> 00:17:28,700 Y eso lo vamos a hacer en el próximo vídeo. 90 00:17:29,819 --> 00:17:31,359 Un saludo, hasta luego.