Bien, bienvenido de nuevo.
Es hora de que tomemos lo que hemos aprendido sobre Mongo D. B y sobre la mangosta y lo agregamos a nuestra
aplicación de campamento para que podamos agregar algo de persistencia de datos.
Entonces los tres pasos principales son instalar y configurar mangosta y luego tenemos que configurar el modelo, el esquema
y el modelo para el campamento.
Y luego tenemos que usar el modelo de campamento en lugar de nuestras rutas.
Antes de ir más lejos, quiero señalar que estoy usando el V-2 del campamento, así que hice otra
copia de V-1 y estaré trabajando en esto para los próximos videos.
Y eso es porque vamos a comenzar a hacer algunos cambios más grandes.
Algunos archivos se moverán pero aún quiero que pueda ver el código V-1.
Así que V-2 y me aseguraré de avisarte cuando comencemos a trabajar en lugar de v3.
Así que vamos a ver lo que tenemos por ahora.
Corramos después de Sí.
Y refresca.
DE ACUERDO.
tenemos el problema de que tan pronto como reinicie el servidor y los nuevos campamentos que agreguemos desaparecerán.
Así que tenemos nuestro campamento, podemos agregar un nuevo campamento, pero por supuesto
Así que vamos a abordar eso.
Vamos a abrir todo lo que necesitamos, que en realidad es solo el archivo Jasc de la aplicación por ahora.
Y lo primero que queremos hacer es instalar mongoose.
Entonces NPM instala mongoose dash dash save y mientras eso queremos queremos asegurarnos de que nuestro proceso se ejecute
en segundo plano.
Hombre-Dios, está bien hecho ahora y podríamos mirar el paquete.
Jason comprueba dos veces que tenemos mangosta aquí.
Aquí vamos.
Ahora está aquí arriba.
Vamos a requerir mangosta guardarlo en una variable llamada mangosta
así como así.
Y una nota lateral rápida lo que verá con bastante frecuencia cuando tengamos muchas
declaraciones requeridas arriba es algo así como que podemos deshacernos de las declaraciones de Varsity y hacer esto
si tenemos múltiples declaraciones de variables seguidas.
Podemos separarlos por comas.
Aquí vamos.
Y esto hará que una variable llamada expresión otra sea llamada en el analizador corporal y Mongoose
funcionará de la misma manera.
No tenemos que escribir una y otra vez.
Y lo que también verás a veces es que la gente alineará esto para que se vea así.
Y eso es realmente una cuestión de preferencia personal.
Lo dejaré aquí por ahora solo para que lo veas.
Pero lo verás en ambos sentidos.
No afecta la forma en que funciona el código.
Es solo un pequeño cambio estilístico.
De acuerdo, guardemos y ejecutemos a Knode después de que Jesús se asegure de que no cometemos ningún error.
Estupendo.
Ahora lo que queremos hacer es conectar la mangosta.
Así que vamos a hacer mongoose connect y todavía no tenemos una base de datos en nuestra televisión de
Mongar para que podamos hacer una de forma dinámica y tenemos que conectarnos a Mongo DB colon slash slash localhost slash y luego el nombre
para un base de datos que aún no existe
Así que simplemente llamemos al campamento de Yelp así y ahorre.
Y esto creará la base de datos de campamentos de Yelp para nosotros en lugar
de Mangu D-B y podemos probarlo si ejecutamos la aplicación sin problemas.
Lo siguiente que tenemos que hacer es configurar nuestro esquema y voy a hacer eso aquí.
Así que añadiré un pequeño comentario aquí.
Esquema configurado y este archivo va a ser un poco largo y en el video futuro vamos
a refactorizarlo.
Así que esta no es la forma en que harías esto en una aplicación de producción real.
Si tuviera 10 modelos diferentes y esquemas diferentes, se volvería realmente loco muy rápido, especialmente
si tuviera muchas rutas.
Así que dividiremos esto en archivos separados más adelante, pero por ahora solo estamos haciendo un esquema.
Así que vamos a llamarlo esquema de camping de var y luego estableceremos que sea igual al nuevo esquema de
mangosta para capitalizarnos.
Y por ahora, un camping solo tiene un nombre que es una cadena y una imagen.
y solo estamos usando lo que ya tenemos aquí y ahorraremos, entonces lo último que tenemos
que hacer es compilar eso en un modelo de campamento de var. Es igual a un modelo superior de mangosta y luego, de nuevo, camping entre comillas.
Eso también es una cadena
Y finalmente, el esquema que es el esquema de campo del campo.
Está bien, entonces lo que debería hacer es hacernos un modelo ahora que usa este esquema y tiene un montón de
métodos para que podamos hacer cosas como encontrar cosas en el campamento.
Y lo primero que queremos hacer es agregar un camping simple.
Así que tomemos uno de estos y crearemos un campamento de campamento para crear.
Entonces eso se ve así
algo temporal, solo para asegurarnos de que las cosas funcionen, vamos a eliminarlo tan pronto como lo intentemos.
Y esto es solo
Entonces, crea y recuerda que pasamos el objeto que queremos crear.
Voy a formatear esto un poco mejor así como así.
Así que estamos creando el objeto primero y luego tenemos esa función de devolución de llamada luego.
Lo primero es el error y luego el segundo sería el camping.
Y haremos un registro constante simple.
Entonces, si el error cancela ese
error de registro, de lo contrario, cancele el registro creado recientemente.
Así.
Y luego en la siguiente línea haremos contras. Ugh.
Terreno de camping.
DE ACUERDO.
Entonces sí, es mucho código.
Pero lo que estamos haciendo
es crear un campamento con estos datos y luego lo espacié en lugar de hacerlo todo en una línea gigantesca.
Lo espacié para que tengamos la función de devolución de llamada que se ejecutará una vez que esto se haga.
Ya sea que tenga éxito o no, tenemos una función de
devolución de llamada y estamos procesando el error manejándolo de manera justa.
Así que solo estamos imprimiendo un error.
Y si no hay un error, vamos a imprimir el campamento.
Todo bien.
Entonces, lo que podemos hacer ahora es probar esto simplemente ejecutando node.
Aquí vamos.
Recién creado camping.
Entonces eso creó funcionó.
No hubo ningún error, nada se imprimió.
Así que obtuvimos esto y parece imagen y nombre.
Y también para verificar que puede abrir el Consejo Mongo y podemos hacer un show TBS.
Aquí está la nueva base de datos de Joachim y podemos usar la cámara de Yelp solo así.
Y luego, lo que podemos hacer es mostrar colecciones y tenemos campings que se
generan porque el nombre de nuestro modelo Cingular es camping y lo pluralizó para nosotros.
Y luego, lo que podemos hacer es D-B campgrounds, campamentos de espera que encuentran.
Y allí vamos a un campamento, tiene una ID asignada automáticamente con nombre e imagen.
Increíble.
Salgamos y luego agreguemos un campamento más para deshacernos de este.
Y en lugar de Semin Creek haremos Cerro de Granito
y solo quiero que tengamos algunos datos iniciales con los que trabajar.
Así que nombre la imagen así.
Y luego podemos ejecutar este nuevo nodo guardar.
Sí, está nuestro segundo campamento que creamos Hill de granito y eso es suficiente por ahora.
Lo siguiente que queremos hacer es reemplazar todo este código aquí.
Podemos deshacernos de todo este código, pero también queremos reemplazar todo
el código en el que estamos usando ese campamento por el arreglo en lugar de usar un conjunto codificado.
Lo que haremos aquí cuando obtengamos todos los campamentos y los mostremos en
la lista de esta página aquí, vamos a recuperar todos los campings de la base de datos para poder hacerlo primero.
Voy a comentar esta línea por ahora.
Necesitamos obtener todos los campamentos del D-B y luego queremos renderizar ese archivo.
Y la forma en que obtenemos todos los campamentos es con el descubrimiento del campamento y estamos buscando todo.
Y luego necesitamos una función de devolución de llamada y toma el error primero y
luego nuestro parámetro se llama campgrounds y siempre revisará si hubo un error en caso de error.
Y haremos un error de registro constante.
Por ahora, tendremos un mejor manejo de errores más adelante, en el que en realidad estamos mostrando un mensaje a un usuario.
Por ahora solo lo estamos imprimiendo.
Y luego, lo que
vamos a hacer es hacer un punto rojo como el que tenemos aquí y realmente podemos dejarlo como está.
Esperamos que se llame campgrounds.
Y el motivo es que todavía queremos presentar el archivo de campamentos y el archivo de campings.
La diferencia es que la fuente del campamento
ya no es el conjunto que teníamos aquí. El campamento se define aquí.
Así que hagámoslo un poco más claro.
Voy a llamar a esto todos los campamentos de esa manera.
Y luego aquí voy a cambiar esto.
Todos los campamentos para que pueda ver la conexión.
Así que estamos haciendo un campamento para encontrar todos los campamentos de la colección.
Cuando haya terminado, ejecuta este código.
La devolución de llamada.
Si hay un error, imprima el error.
De lo contrario, tome todos los campamentos.
Acaba de regresar y enviarlos al campamento que E. J. ha archivado.
Ahora si guardamos y reiniciamos
el servidor y me voy a deshacer de esto por ahora, comentaré lo contrario, terminaremos con otra colina de granito en nuestra base de datos.
campings, que es exactamente lo que queremos.
Así que ahora vamos a iniciar el servidor y actualizar la página, solo vemos dos
Estos dos están en la
base de datos y ya no estamos lidiando con la matriz de campings que está codificada.
Estos siempre estarán en la base de datos hasta que los eliminemos.
Pero al menos si el servidor se reinicia o si tenemos algún problema, aún persisten.
Así que ahora se enfoca en hacer que esto funcione, de modo que cuando un usuario agrega un nuevo campamento, funcione.
Y ahora tenemos un pequeño problema.
Si solo escribo jibberish aquí y pulso enviar me sale un error.
El campamento no está definido y me dice que
sí en la línea 54, que está justo aquí donde empujamos el nuevo campamento hacia los campamentos.
Pero esa bandeja de camping no está definida porque la eliminamos.
Solía ​​ser un muelle y nos deshacemos de él para que funcione como queremos.
Ya no necesitamos esta línea.
Y, en cambio, lo que queremos hacer es crear un nuevo campamento y guardarlo en la base de datos.
Así que esto seguirá siendo el mismo en el que necesitamos tomar el nombre y la imagen, y
esto también seguirá siendo el mismo en el que estamos creando este objeto.
Y luego lo que podemos
hacer es guardar eso en la base de datos y podemos crearlo con camping que crear y luego
el primer argumento es lo nuevo que queremos crear y que ya hemos almacenado convenientemente en un objeto
llamado nuevo campamento podemos pasar eso y luego necesitamos la función de devolución de llamada así como así.
Y recuerde nuestro error de dos argumentos y
llamaremos esto recién creado así y lo haremos si hay un error y si hay un error si hay un problema con los
datos del formulario que el usuario ingresa, entonces tendríamos que piensa en lo que realmente queremos que suceda.
o nombre Campi en blanco o nombre el número de Campeon o lo que sea.
Y, finalmente, lo que haremos será enviar de nuevo al usuario al formulario y mostrarles un mensaje que diga algo como foto Caffey en blanco
Pero podemos mostrarles un mensaje.
Por ahora nos estamos quedando
con nuestro probado y constante alt log del error y luego De lo contrario, si funcionó, aunque tenemos que hacer es volver a los campamentos así como así.
Redirigir a los campamentos.
Aquí vamos.
Y luego volverá a
ejecutar esta ruta aquí arriba, donde encontrará todos los campamentos, incluido el nuevo que acaba de ser agregado, y luego nos mostrará nuevamente esta plantilla.
Así que probémoslo.
Voy a reiniciar el servidor y también voy a tomar una imagen para usar y la usaré aquí.
Copia eso, Aro, entonces voy a abrir la aplicación aquí y
actualizar bien y luego intentaremos agregar un nuevo campamento.
Y este se llamará el lugar de descanso de la nube que en hit submit y parece que funcionó.
Vuelve aquí.
No obtenemos ningún error
Y si actualizamos la página, aún aparece y si reiniciamos el servidor, esta es la verdadera prueba.
Todavía está allí.
DE ACUERDO.
Así que hemos introducido la persistencia de datos en nuestros campamentos.
El servidor puede detener que la energía pueda apagarse independientemente de la calamidad que pueda ocurrir.
Y nuestros datos aún persistirán.
Así que permítanme volver a la nube 9 y haré un resumen rápido de lo que hicimos.
Así que agregamos mangosta aquí.
un nombre y una imagen y eso es.
Nos conectamos a una base de datos de campamento yelp que no existía en el momento en que ejecutamos este código por
primera vez, pero cada vez que usamos la base de datos de campamento creada inicialmente y luego configuramos el esquema de campamento que ahora tiene
Pero si queremos agregar más cosas en
Es muy fácil y flexible.
Y luego esta línea infame en
la que estamos compilando el esquema en un modelo en el que tomamos este modelo de cómo debería ser un camping y lo convertimos en un
código que podemos usar que tiene un montón de métodos que incluyen encontrar lo cual es importante.
a donde estamos recuperando todos los campamentos y mostrarlos a todos.
Lo estamos usando dentro de nuestro campamento de recortes para llegar
Y luego también creemos grandioso aquí donde estamos tomando datos del formulario.
Y esto es un poco confuso porque hay muchas variables.
Estamos agarrando el nombre y el cuerpo de la forma.
Estamos creando un nuevo objeto como un paso separado.
Podríamos haber tomado este código y pegado aquí mismo.
Pero me gusta hacer una nueva muy bien que solo muestra lo que estamos haciendo.
se haya realizado el Create, ya sea que tenga éxito o no.
Así que el nuevo camping es un nombre de objeto que proviene de una imagen que creamos con esa función de devolución de llamada que se ejecutará una vez que
Y luego manejamos el error aquí.
En este momento tenemos un manejo de errores muy básico.
Ahora no lo está manejando. Es solo error al reconocer que solo estamos imprimiendo
el error y, de lo contrario, si funciona, volvemos a la página de campings que nos lleva de regreso aquí.
De acuerdo, ahora tenemos una mangosta conectada.
Tenemos nuestra base de datos configurada.
comentarios cuando agreguemos comentarios y otras cosas divertidas.
Vamos a seguir usando esto y pronto vamos a ver otro modelo y otro esquema para los usuarios cuando tengamos autenticación de usuario para