OK, de volta.
É hora de levar o que aprendemos sobre Mongo D. B e sobre mangust e adicionamos isso no nosso
aplicativo de campo para que possamos adicionar alguma persistência de dados.
Então, as três etapas principais estão instalando e configurando mangustão e então temos que configurar o modelo do esquema
e o modelo para o acampamento.
E então precisamos usar o modelo de acampamento em vez de nossas rotas.
Antes de ir mais longe, quero salientar que estou usando o V-2 do acampamento, então fiz outra cópia
do V-1 e vou trabalhar dentro disso para os próximos vídeos.
E isso é porque vamos começar a fazer algumas mudanças maiores.
Alguns arquivos estão se movendo, mas eu ainda quero que você veja o código V-1.
Então, V-2 e eu irei garantir que você saiba quando começamos a trabalhar em vez de v3.
Então vamos ver o que temos por agora.
Vamos correr atrás de Sim.
E atualize.
ESTÁ BEM.
temos o problema em que, assim que eu reiniciar o servidor e os novos acampamentos que vamos adicionar, vão desaparecer.
Então, temos o nosso acampamento, podemos adicionar um novo acampamento, mas é claro que
Então vamos abordar isso.
Vamos abrir tudo o que precisamos, o que realmente é apenas o arquivo Jasc do aplicativo por enquanto.
E a primeira coisa que queremos fazer é instalar mangustão.
Então, o NPM instala o manguito do mongoose salvo e, enquanto isso, queremos garantir que nosso processo seja executado
em segundo plano.
Man-God OK, está pronto e podemos observar o pacote.
Jason verifique se temos mangusto aqui.
Aqui vamos nós.
Agora está aqui.
Vamos exigir mangustão, salvá-lo para uma variável chamada
mangustão assim.
E um lado rápido observa o que você verá com bastante frequência quando tivermos muitas
declarações exigidas no topo é algo assim, onde podemos realmente livrar-se das declarações do Varsity e fazer isso
se tivermos várias declarações de variáveis ​​seguidas.
Podemos separá-los por vírgulas.
Aqui vamos nós.
E isso fará uma variável chamada expressão outra chamada no analisador do corpo e Mongoose, ela
funcionará da mesma forma.
Não precisamos escrever uma e outra vez.
E o que você também verá às vezes é que as pessoas irão alinhar isso para que pareça assim.
E essa é realmente uma questão de preferência pessoal.
Deixarei aqui por agora apenas para que você veja.
Mas você verá as duas coisas.
Não afeta a maneira como o código funciona.
É apenas uma pequena mudança estilística.
OK, então vamos salvar e executar Knode depois de Jesus ter certeza de que não temos erros.
Ótimo.
Agora, o que queremos fazer é conectar mangustão.
Então, vamos fazer uma ligação para mangustão e ainda não temos um banco de dados em nossa TV Mongar para
isso, podemos fazer uma dinamicamente e precisamos nos conectar ao barramento de barras de barra diagonal de Mongo DB e barra, e então o nome
para uma banco de dados que ainda não existe.
Então, vamos chamar o campo de Yelp assim como isso e salvar.
E isso irá criar o banco de dados do acampamento do usuário para nós em vez de Mangu D-B
e nós podemos apenas testar isso se nós executamos o aplicativo, não há nenhum problema.
A próxima coisa que precisamos fazer é configurar o nosso esquema e vou fazer isso aqui.
Então vou adicionar um pequeno comentário aqui.
Esquema configurado e este arquivo vai ficar um pouco longo e no futuro vídeo
vamos refatorá-lo.
Portanto, esta não é a maneira que você faria isso em um aplicativo de produção real.
Se você tivesse 10 modelos diferentes e esquemas diferentes, ficaria realmente louco muito rápido, especialmente se
você tivesse muitas rotas.
Então, vamos romper isso em arquivos separados mais tarde, mas agora estamos fazendo um esquema.
Então, vamos chamá-lo de esquema de campground var e, em seguida, vamos definir isso igual ao novo esquema de mangusto
para nos ajudar.
E, por enquanto, um acampamento apenas tem um nome que é uma string e uma imagem.
e estamos apenas usando o que já temos aqui e salvaremos, então a última coisa que
precisamos fazer é compilar isso em um modelo de campo de var é igual ao modelo superior de mangusto e, em seguida, aqui novamente acampamento entre citações.
Isso também é uma string
E, finalmente, o esquema que é o esquema do solo do acampamento.
Ok, então o que isso deve fazer é tornar-nos um modelo agora que usa este esquema e tem um monte de
métodos para que possamos fazer coisas como achar o campo de acampamento.
E a primeira coisa que queremos fazer é adicionar um acampamento simples.
Então, vamos pegar um desses e vamos fazer um acampamento para o acampamento criado para começar.
Então isso parece assim.
uma coisa temporária, apenas para garantir que as coisas funcionem, vamos excluí-las assim que a experimentarmos.
E isso é apenas
Então o acampamento crie e depois lembre-se de que passamos o objeto que queremos criar.
Eu vou formatar isso um pouco mais agradável assim.
Então, estamos criando o objeto primeiro e depois temos essa função de retorno de chamada posteriormente.
A primeira coisa é o erro e, em seguida, o segundo seria o acampamento.
E vamos fazer um registro simples e constante.
Então, se o erro cancelar
esse erro de registro, cancele o acervo de recém-recém-criado.
Bem desse jeito.
E então, na próxima linha, faremos contras. Ugh.
Área de camping.
ESTÁ BEM.
Então, sim, é um monte de código.
Mas o que estamos fazendo
é criar um acampamento com esses dados e, em seguida, acabei de espaçá-lo em vez de fazer tudo em uma linha gigantesca.
Eu espaçou isso, então nós temos a função de retorno de chamada que será executada assim que isso acontecer.
Se é bem-sucedido ou não temos uma função de retorno
de chamada e estamos processando o erro ao manipulá-lo de forma justa.
Então, estamos apenas imprimindo um erro.
E se não houver um erro, vamos imprimir o acampamento.
Tudo bem.
Então, o que podemos fazer agora é testar isso apenas executando o nó.
Aqui vamos nós.
Acampamento de recém-criado.
Então essa criação funcionou.
Não houve nenhum erro, nada foi impresso.
Então, conseguimos isso e parece uma imagem e um nome.
E também para verificar se pode abrir o Conselho Mongo e podemos fazer um show TBS.
Aqui está a nossa nova base de dados Joachim e podemos usar a câmara de Yelp assim.
E então, o que podemos fazer é mostrar coleções e temos acampamentos que são gerados
porque o nome do nosso modelo Cingular é um acampamento e isso o pluriu para nós.
E então, o que podemos fazer é que os acampamentos D-B esperam acampamentos que encontrem.
E lá, nós vamos um acampamento, ele tem um nome automaticamente atribuído nome e imagem.
Impressionante.
Então vamos sair e depois adicionar um acampamento mais para se livrar deste.
E ao invés de Semin Creek, faremos colina de granito
e eu só queremos que possamos ter algum dado inicial para trabalhar.
Então, dê uma imagem de nome assim.
E então podemos executar isso novamente salvar nó.
Sim, há nosso segundo acampamento que criamos granito e isso é suficiente por enquanto.
A próxima coisa que queremos fazer é substituir todo esse código aqui.
Nós podemos nos livrar de todo este código, mas também queremos substituir
todo o código em que estamos usando esse acampamento para a matriz em vez de usar uma matriz codificada.
O que vamos fazer aqui quando estivermos recebendo todos os campgrounds e mostrando-os
na lista nesta página aqui vamos recuperar todos os acampamentos do banco de dados para que possamos fazer isso primeiro.
Eu vou comentar esta linha por agora.
Precisamos obter todos os campgrounds do D-B e então queremos renderizar esse arquivo.
E a forma como conseguimos todos os acampamentos é encontrar um acampamento e estamos à procura de tudo.
E então precisamos de uma função de retorno de chamada e, em primeiro lugar, leva o erro
e, em seguida, nosso parâmetro será chamado de campgrounds e sempre verificará se houve um erro se o erro.
E nós faremos um erro de registro constante.
Por enquanto, teremos melhor tratamento de erros mais tarde, onde realmente estamos mostrando uma mensagem para um usuário.
Por enquanto, estamos apenas imprimindo.
E então, o
que vamos fazer é fazer um dado vermelho como nós temos aqui e podemos realmente deixá-lo como é.
que seja chamado de campgrounds.
E o motivo disso é que ainda queremos renderizar o arquivo de campgrounds e no arquivo de campground. Esperamos
A diferença é a fonte do acampamento não
é mais a matriz que tivemos até aqui, o acampamento está definido aqui.
Então vamos deixar isso um pouco mais claro.
Ligue para todos esses campgrounds assim.
E então aqui vou mudar isso.
Todos os acampamentos para que você possa ver a conexão.
Então, estamos fazendo um acampamento para encontrar todos os acampamentos na coleção.
Quando isso for feito, execute este código.
O retorno de chamada.
Se houver um erro, imprima o erro.
Caso contrário, pegue todos os campgrounds.
Ele acabou de voltar e enviá-los para o acampamento que E. J. arquivou.
Agora, se economizarmos e reiniciamos
o servidor e eu vou me livrar disso agora comentado, caso contrário, acabaremos com outro monte de granito em nosso banco de dados.
que é exatamente o que queremos.
Então, agora vamos começar o servidor e atualizar a página, só vemos dois campgrounds
Esses dois são ambos no
banco de dados e não estamos mais lidando com a matriz de campground que está codificada.
Estes sempre estarão no banco de dados até que os excluamos.
Mas, pelo menos, se o servidor for reiniciado ou tivermos problemas lá, eles ainda persistem.
Então, agora é foco em conseguir que isso funcione, de modo que, quando um usuário adiciona um novo acampamento, ele funciona.
E agora temos um pequeno problema.
Se eu simplesmente digitar jibberish aqui e clicar em enviar, recebo um erro.
O acampamento não está definido e está me dizendo
que está na linha realmente sim 54, que está aqui onde estamos empurrando o novo acampamento para campgrounds.
Mas essa bandeja de acampamento é indefinida porque a excluímos.
Costumava ser um cais e nós nos livramos disso para fazer isso funcionar da maneira que queremos.
Nós não precisamos mais desta linha.
E em vez disso, o que queremos fazer é criar um novo acampamento e salvar em banco de dados.
Então, isso permanecerá o mesmo em que precisamos pegar o nome e a imagem
e isso ficará o mesmo, onde nós estamos fazendo esse objeto.
E então, o que podemos
fazer é apenas salvar isso no banco de dados e podemos criá-lo com um acampamento que crie e,
em seguida, o primeiro argumento, existe a coisa nova que queremos criar, que já armazenamos convenientemente em um
objeto chamado novo acampamento, então podemos passar assim e então precisamos da função de retorno de chamada assim.
E lembre-se dos nossos dois erros de argumento
e chamaremos esse recém-criado assim e faremos o nosso se houver um erro e se houver um erro se houver um problema
com os dados do formulário que o usuário insere, então teremos que pense no que realmente queremos acontecer.
ou nomear Campi em branco ou nomear o número Campeon ou seja o que for.
E, eventualmente, o que faremos é enviar o usuário de volta ao formulário novamente e mostrar-lhes uma mensagem que diz algo como foto Caffey em branco
Mas podemos mostrar-lhes uma mensagem.
Por enquanto, estamos aderindo
ao nosso constante e constante constante alt log do erro e, caso contrário, se funcionasse, embora precisemos fazer é voltar para campgrounds assim.
Redirecione de volta para campgrounds.
Aqui vamos nós.
E então, isso irá
rodar esta rota novamente aqui, que você encontrará todos os acampamentos, incluindo o novíssimo que acabou de ser adicionado e depois nos mostrará esse modelo novamente.
Então vamos testá-lo.
Eu vou reiniciar o servidor e também vou pegar uma imagem para usar e vou usar essa aqui.
Copie que você, Aro, então vou abrir o aplicativo aqui e
atualize OK e depois tentaremos adicionar um novo acampamento.
E este será chamado de lugar de descanso da Nuvem que no hit submit e parece que isso funcionou.
Você volta aqui.
Não temos erros.
E se atualizamos a página ainda aparece e se reiniciarmos o servidor, esse é o teste verdadeiro.
Ainda está lá.
ESTÁ BEM.
Então, introduzimos a persistência de dados em nossos acampamentos.
O servidor pode parar que o poder possa sair, seja qual for a calamidade que possa ocorrer.
E nossos dados continuarão a persistir.
Então, deixe-me voltar para a nuvem 9 e vou fazer um breve resumo do que fizemos.
Então, adicionamos mongoose aqui em cima.
um nome e uma imagem e é isso.
Nós nos conectamos a um banco de dados de acampamento de judeus que não existia no momento em que administramos o código
pela primeira vez, mas a cada vez que usava o banco de dados inicialmente criado e depois configuramos o esquema do acampamento que agora tem
Mas se quisermos adicionar mais coisas.
É muito fácil e flexível.
E, em seguida, esta linha infame
onde estamos compilando o esquema em um modelo em que estamos levando este plano para o que um acampamento deve ser semelhante e nós estamos transformando
isso em algum código que podemos usar, que tem muitos métodos, incluindo encontrar o que é importante.
chegar onde estamos recuperando todos os campgrounds e mostrando todos eles.
Nós estamos usando isso dentro do nosso acampamento de barraca para
E, em seguida, também crie excelente aqui, onde estamos tirando dados do formulário.
E isso é um pouco confuso porque há tantas variáveis.
Estamos agarrando o nome e o corpo do formulário.
Estamos fazendo um novo objeto como uma etapa separada.
Nós poderíamos ter tomado este código e colado aqui.
Mas eu gosto de fazer um novo muito bem que mostra o que estamos fazendo.
uma vez que o Create seja feito, seja ele bem-sucedido ou não.
Assim, o novo acampamento é um nome de objeto, uma imagem que vem do formulário do que criamos com a função de retorno de chamada da capa que será executada
E então lemos o erro aqui.
Agora, temos um tratamento de erros muito básico.
Agora você não está realmente lidando. É apenas um erro ao reconhecer onde estamos
apenas imprimindo o erro e, em caso contrário, se funcionar, retornamos à página de campground que nos leva de volta aqui.
Tudo bem, agora temos mangusto conectado.
Temos nossa configuração de banco de dados.
quando adicionamos comentários e outras coisas divertidas.
Nós continuaremos usando isso e, em breve, vamos ver outro modelo e outro esquema para usuários quando tivermos autenticação de usuários para comentários