Transcrições
1. O que esperar do curso: Gostaria de recebê-lo oficialmente a este nó do curso SQL cartão postal SQL Mastering Back End desenvolvimento
Web. Grande pensamento em tomar o mergulho para trás no desenvolvimento Web. É uma das habilidades mais procuradas, uma vez que as empresas dependem do back-end para o núcleo de seus serviços e produtos. O que você pode esperar deste curso? Bem, este curso tem um objetivo em mente para que você adicione com confiança node.js, SQL e cartão postal SQL como habilidades ao seu currículo e novos itens dentro do seu conjunto de habilidades de codificação. Se você já aprendeu um pouco de qualquer nó ou pós-resgate l ou ambos,
em seguida, considere este curso uma boa atualização para os conceitos. Este curso é um tutorial orientado para o projeto, então os tópicos serão introduzidos em um alto nível, explicando o que termos-chave significam e quais tópicos
principais cobrem à medida que construímos projetos e avançamos uma vez que tenhamos uma compreensão de conceitos, vai solidificar isso novamente construindo nossos projetos juntos, vamos construir três projetos completos. Primeiro, vai fazer um servidor back-end com nó para entender o essencial e construir uma base. Em segundo lugar, intensificará nosso jogo misturando e Express para construir um A P I. Em seguida, vamos explorar SQL e Post Rescue Well, para construir outra base sobre essas ferramentas de banco de dados back-end. E terceiro e, finalmente, para os nossos projetos vai construir um backback completo e servidor em um p I com nota e post press trazendo todos os conceitos juntos. Dessa forma, aprenderemos como gerenciar e fornecer dados de forma eficaz para aplicativos da Web. Tudo bem com isso, vamos nos preparar para aprender nó SQL e post Braschi bem e começar a revestir.
2. Opcional: instalando o Node: Vamos insultar Não, Jess, vá para uma nova aba no seu navegador e pesquise No Gs, um dos primeiros links que deve aparecer. É um ponto ou um brilho sem ducado. Vá em frente e clique nele e, em seguida, vamos encontrar a página inicial do nó dot Js em casa Donald, a versão mais atual do nó 8.8 ponto um o mais novo. Agora, se você não usa um sistema mac, vá para a aba de downloads aqui e encontre um link relevante para o seu sistema operacional e plataforma. Se você precisa das janelas e solar, a nota do instalador limites tem isso para você. Assim que tiver o pacote, vá em frente e abra. Uma vez que você faz. Então você encontra uma série de passos assim e isso nos permitirá instalar nota globalmente em nosso sistema. Vamos seguir em frente e continuar com esses acordos. Você pode ler a documentação. Clique em Concordo. É como o seu sistema instalá-lo em sua unidade e, em seguida, instalá-lo. Você precisará digitar sua senha, bem como para instalar o software, e em breve ele será instalado e ter todos os seus arquivos escritos e Lá vamos nós. Está concluída. Instalando agora para verificar se ele está instalado. Vá em frente e abra seu aplicativo de terminal. Você pode usar o recurso de destaque no Mac fazendo espaço de comando e, em seguida, digitando o terminal
em outros sistemas. Você vai querer encontrar a linha de comando. Acredito que seja um prompt de comando no Windows. Agora, para aqueles de vocês novos no terminal, vocês podem basicamente pensar nisso como uma versão tipo do localizador ou a pasta. Explore no seu sistema. Exceto que também podemos lançar programas. A partir disso, podemos navegar através de pastas ou diretórios digitando em CD, o que significa alterar diretório. Também podemos digitar L s para ver quais pastas estão lá para nós e agora no terminal. Também podemos verificar se o nó foi instalado corretamente. Você deve ser capaz de digitar nó e no espaço e na opção traço V, que nos dará a nossa versão do nó. E a versão deve corresponder à que acabamos de instalar através da página de download. Versão 8.8 ponto um. Também digite inveja NP e ela recebe algo maior que a versão cinco. Não, npm é um gerenciador de pacotes, o gerenciador de pacotes Node, que é enviado automaticamente com nó cuja função principal é instalar módulos ou pacotes para observação. Pense em um módulo como o contêiner de código relevante para uma função de nó específica ou conceito de
programação. Nós usamos muitos NPM neste curso, então você continua aprendendo tudo sobre ele. Ótima. Sem GS e NPM instalados, temos as próximas ferramentas prontas para codificar.
3. Opcional: como instalar um editor de código: Agora é um insulto. Um editor de código com o editor de código seria capaz de modificar segue para nossos projetos e desenvolver nossas aplicações. Agora eu acho que um dos editores de casaco mais fácil trabalhar com é o código de estúdio visual. Se você não usa o código visual studio como editor e já gosta
de trabalhar com outro, outro,use esse. Há muitas opções sólidas lá fora, e são todas muito boas. Por exemplo, eu tenho você sublime pesadamente no passado em Também usar Adam bastante para Mas recentemente eu tenho usado código de estúdio visual em encontrar muitas suas opções personalizadas para ser bastante agradável. Ok, para configurar o código de estúdio visual, você pode começar indo para um navegador e simplesmente pesquisar configurar código de estúdio visual ou conjunto de código de idéias. Você vai encontrar um link aqui, configurar o código S e ir e clicar nele e você vai encontrar uma página exatamente como esta. Agora você acha que o código de estúdio visual vai para várias plataformas como Mac, Linux e Windows, então vá em frente e clique no link para o seu relevante. Se você estiver no Mac, fique à vontade para ficar o resto da lição para ver uma instalação. Então vamos para o Mac, então aqui encontramos um download do código de estúdio visual no link. E lá devemos ver. Sim. V s código Darwin zip ponto estável está baixando. Então, quando terminar o download, podemos ir em frente e abrir. O código do Visual Studio é um novo aplicativo. Então lá está se expandindo. Uma vez que clicamos duas vezes no arquivo zip, e aqui encontramos um novo editor de código do Visual Studio. Agora, o que você deseja fazer a seguir é realmente arrastar seu código do Visual Studio para sua
pasta de aplicativos agora já tem um. Então eu vou em frente e parar com isso, mas para você, ele vai entrar automaticamente se você já não tem o código do estúdio visual Agora, para o próximo passo, você vai querer abrir seu novo editor de código do Visual Studio que um dos recursos mais bonitos sobre o código do Visual Studio é seu recurso de caminho de linha de comando. Não para encontrar o que estou falando. Arma, pressione o comando Shift P ao mesmo tempo. E procure o Shell Command. Agora você deseja instalar o comando code em seu caminho. Então, uma vez instalado, vá em frente e abra seu terminal. E o efeito disso é que agora você tem acesso a este comando de código em seu terminal. Agora, a grande coisa sobre este comando é que ele me permite abrir qualquer pasta que eu quiser dentro do terminal para que eu possa ir para a minha pasta NPM. E então eu poderia facilmente abrir tudo dentro aqui simplesmente fazendo ponto de código e lá vai abrir toda a nossa pasta dentro do código de cidade Visual pronto para nós para explorar esses diferentes arquivos. Excelente. Então é isso que o Shell Command faz. Ele nos permite usar o comando code diretamente dentro de nossa linha de comando. E é truque muito simples e vai nos ajudar para o desenvolvimento, vez que seria criar um monte de projetos dentro do nosso terminal. Então certamente usar este comando de código para abrir nossos projetos criativos será muito útil. Essa capa vai conseguir um editor de peles de novo? Você não precisa usar o código do Visual Studio. É muito simples de configurar,
e é por isso que estou guiando você através desta instalação. Tudo bem, vamos seguir em frente
4. O que é o Node.js? .js?: o que não é DGS definido por sua documentação, Loader GS é um tempo de execução de Ben Driven JavaScript assíncrono projetado para construir aplicativos de
rede escaláveis . Essa declaração vem com mais de alguns termos carregados, então vamos impactar isso pouco a pouco. Vamos começar com o fato de que é projetado para criar aplicativos de rede escaláveis. Bem, o que é um aplicativo de rede? Primeiro de tudo, vamos explorar o que queremos dizer quando dizemos aplicação. Um aplicativo é um programa de computador com uma interface, como uma exibição interativa para o usuário realizar tarefas como processamento de texto ou fazer planilhas. Os aplicativos que vêm à mente são o Microsoft Word ou um editor de código. Como sublime. Esses aplicativos são autônomos, que
significa que editamos dados localmente e os armazenamos no mesmo computador. Agora vamos distinguir isso do conceito de um aplicativo de rede. Os aplicativos de rede usam uma arquitetura de servidor cliente , o
que, na visão geral, significa que pode haver dois ou mais computadores envolvidos no manuseio de dados. O cliente, geralmente um laptop desktop, agora
eram dispositivos móveis como um iPhone acessar os serviços do servidor Web. O servidor, um computador em si, está hospedado em outro lugar, muitas vezes dentro de um grande data center, o computador servidor muito mais poderoso lida com trabalhos pesados , como gerenciar um grande número de arquivos ou outros processos. Em seguida, o cliente executa aplicativos que estavam mentindo nesses servidores poderosos para Resource Is e o poder de processamento. Um exemplo adequado para este modelo de arquitetura de servidor cliente é um navegador da Web. O Google Chrome executa um programa cliente da Web para permitir que você acesse a Internet. E quando você faz uma solicitação para o servidor com ações como o Google,
pesquisa, pesquisa, seus servidores Web executar programas em um data center para recuperar as informações a serem exibidas para você Então, em resumo, a nota é projetada para criar aplicativos de rede. E um aplicativo de rede é aquele que usa uma arquitetura de servidor cliente, onde um computador cliente executa um aplicativo que envia e recebe dados a serem processados por um servidor. Agora vamos mergulhar na idéia de que nenhum DGS é um tempo de execução JavaScript orientado por eventos assíncronos . Vamos começar com a definição de um tempo de execução. Nenhum togs é um tempo de execução, o que significa que este tipo de programa executa instruções enquanto o programa está em execução. Mesmo aqueles que não escrevemos explicitamente ou sabemos de antemão. Vamos pensar nisso em termos de nó criando nosso aplicativo de rede fazer um programa,
agindo como o nó do servidor irá iniciar o programa do servidor e durante todo esse
tempo de execução servidores , ele pode receber instruções de um cliente para processar arquivos ou recuperar informações de locais
armazenados. Essas instruções não são exatamente conhecidas quando o programa é iniciado, mas podem acontecer a qualquer momento. Finalmente, o que dizemos Java script runtime. Queremos dizer que nenhum Duchy s é um tempo de execução implementado em código JavaScript. Isso nos leva à idéia de nó sendo conduzido por eventos. No modelo orientado a eventos, Um programa segue um fluxo de eventos determinados por um usuário novamente não. Através de sua execução, tempo executa diferentes ações no programa. Dependendo dos eventos enviados pelo usuário, como solicitar back-end, recurso está processando alguns dados de arquivo enviados pelo usuário e muito mais. Esses eventos podem acontecer em qualquer ordem, modo que o fluxo de nó é conduzido por esses eventos. Finalmente, chegamos à última parte o primeiro aviso adjetivo assíncrono Em termos de
ciência da computação pura , um programa assíncrono permitirá que as operações continuem simultaneamente significando enquanto em operação é em execução. Pode iniciar novos sem bloquear a operação antiga. Talvez ajude a distinguir um programa assíncrono de um síncrono em um aplicativo
síncrono. Por outro lado, o manuseio das operações é sequencial, tudo fica simplificado e as coisas ocorrem um após o outro em uma ordem direta. Isto torna um programa mais simples em termos de um processo passo a passo. Mas se o aplicativo quer fazer mais de uma coisa tem que bloquear a próxima operação até que o atual termina, Vamos voltar para o nosso exemplo de servidor em um sistema síncrono. Digamos que o servidor está atualmente processando uma enorme quantidade de dados que está levando dois
minutos inteiros para ser concluído. Uma nova solicitação vem para pegar informações e recuperar um pequeno arquivo com apenas algumas linhas de informações nele. Esse processo leva dois segundos, mas a recuperação de dados de dois segundos precisa esperar até que todo o processamento de dados de dois minutos seja concluído para ocorrer em um aplicativo assíncrono. Esses dados, que mal pode acontecer enquanto esses outros dados estão sendo processados? Isso dá ao servidor cliente muito mais poder, pois ele pode colocar operações pesadas em segundo plano e ainda fornecer ao cliente um serviço rápido e confiável. Tudo bem com a idéia de um aplicativo assíncrono para baixo nós agora totalmente impacto estão começando definição de nenhum holandês. Sim, em resumo, NotTs é um aplicativo assíncrono capaz de lidar com mais de uma operação de forma não sequencial. Node.js é conduzido por eventos, definido por um Siris desconhecido de eventos enviados pelo usuário. Nenhuma DGS é um tempo de execução de script de trabalho implementado no GS que pode lidar com diferentes eventos durante toda a vida útil de seu programa. E, finalmente, NotTs foi projetado para criar aplicativos de rede na arquitetura de servidor cliente excelente .
5. NPM, Modos e um programa de Node: com nossa sólida compreensão do nó, vamos entrar e criar nosso primeiro programa de nó para começar a cabeça para sua linha de comando, aplicação e pescoço. Compactar espaço de comando para o recurso de destaque. Assim como, digite o terminal e pressione enter. Você iniciará o aplicativo de terminal como ele aparece assim no Windows. O aplicativo para a linha de comando geralmente é chamado de prompt de comando com o terminal aberto. Agora, vamos nos certificar de que temos o tipo de nota no nó e, em seguida, espaço Dash V. Para o número da versão, você deve obter uma versão em torno de oito ou superior, que é a mais atual no momento. Se você também tem a versão seis, tudo bem. Essa versão é o padrão mais estável do setor e deve suportar todos os recursos que usamos neste curso. Se você não tiver a nota instalada, certifique-se de ir para o início do reconhecimento do curso. Encontre um tutorial sobre a instalação com nó. Nós também deve obter automaticamente NPM,
por isso, se você digitar NPM ser, você vai encontrar sua versão do NPM, e você deve encontrar algo maior do que a versão cinco ou a versão três. Se você também estiver usando a nota. V seis você pode estar se perguntando o que NPM faz e realizar e o que ele representa, e PM ou a nota. Package Manager é uma ferramenta automaticamente enviado com nó que nos permite inicializar
projetos de nota e instalar módulos relevantes para os nossos projetos ao desenvolver aplicações. O assunto dos módulos continuará aparecendo, pois esses módulos ou bibliotecas JavaScript nos
permitirão criar recursos poderosos para nossos servidores e anotar aplicativos. Para o nosso primeiro passo, vamos criar uma nova pasta para o nosso primeiro sem projeto. Você provavelmente vai querer criar uma pasta para este curso para How about node post GRERS? Para criar uma pasta, use o comando M. Kader, que significa o diretório make. Então é M. Kate Dirt de ir,
e, em seguida, nota sublinhado vestido post para a pasta deste curso. Se você digitar LS devemos encontrar esse nó. Post Press já está disponível em nossas pastas. Em seguida, vamos navegar para essa pasta ou diretório usando o CD Change Directory Command para abreviar e, em seguida, uma vez que eu digitá-lo nó, observe que esta é a única coisa que tem nó como seu prefixo. Então, se eu pressionar guia, ele automaticamente vai até novo Post Press. Então eu posso digitar enter para concluir a confirmação. Ótimo Nunca. Temos uma pasta para nossos projetos de carência post nó. Vamos fazer do nosso primeiro projeto um chamado First Server Again. Vamos usar o Make Directory Command por isso é M. Kidder e, em seguida, criar o nosso projeto, que é o primeiro servidor sublinhado. Agora vamos mudar o diretório para aquele. Então, se eu digitar na primeira noite pressione tab, ele vai auto completar. E lá estamos nós no primeiro servidor. - Legal. Agora vamos inicializar nosso projeto usando NPM e PM vem com qualquer comando chamado nele, o que nos permite criar a nota. Projeto Lee Interativo. Então digitando em PM Vamos executar o comando em PM nele. O que se segue é uma série de perguntas sobre o projeto de nota, como o nome
do projeto, a descrição ,
o autor , a licença, etc. Podemos clicar em enter para todas essas perguntas para ir rapidamente e personalizá-los mais tarde, se necessário. Assim que tudo estiver feito, vamos dizer sim. Tudo isso parece bom. Um offi tipo em é enfraquecer. Liste o conteúdo do diretório do primeiro servidor e encontramos um arquivo de ponto pacote Jason foi criado. Este pacote de ponto Jason contém a informação que acabamos de confirmar. Então, para ver isso na linha de comando, podemos usar o programa cat. Então é o pacote gato pegou Jason, e isso imprime o conteúdo do arquivo em nossa linha de comando. E aqui vemos que temos respostas Oliver para essas perguntas que rapidamente respondemos no recurso
interativo NPM innit. Então está tudo contido neste Jason, Va. Vamos mergulhar em Jason mais tarde, mas se você não estiver familiarizado com o tipo de arquivo, você pode pensar em Jason como um arquivo cheio de dados de objetos JavaScript. Todas as chaves são cercadas por aspas. As marcas para o nosso projeto de nota são empacotadas. Jason Fall representa nossas configurações e deixa sair maneiras Nós também podemos interagir com o projeto. Ótima. Nós agora configuramos nosso primeiro projeto de nota. Vamos seguir em frente e começar a adicionar o código para transformá-lo em um servidor
6. Primeiro servidor de HTTP: Vamos construir este servidor. Começaremos abrindo nosso projeto no editor de código dela. Use o editor com o qual você estiver mais confortável. Se você instalou o código do Visual Studio no início deste curso, você provavelmente terá o atalho da linha de comando. Então digite o código no ponto de espaço na linha de comando para abrir nosso primeiro projeto de servidor. Então aqui está indo para ir em frente e fazer esta tela cheia. Agora, se você está se perguntando qual era o recurso de tela cheia, eu tenho essa ferramenta chamada tamanho acima instalada no meu Mac, que me permite mover coisas facilmente. Por exemplo, eu poderia colocar coisas em cantos à esquerda, superior inferior ou direita, e fazer as coisas em tela cheia muito rapidamente. Agora é um aplicativo pago, mas um pouco de investimento para melhorar sua vida de desenvolvedor geralmente vale a pena. Então considere ir para dimensionar e usá-lo. Aqui temos o nosso projeto com o seu pacote Dajae Santa. Agora, se ele abriu o pacote Dajae Sandra, você encontra os principais pontos de campo para um índice esquisito. Na medida em que isso significa essencialmente que a raiz do nosso projeto será um arquivo JavaScript chamado index dot gs. Bem, nós não temos esse arquivo no momento, então vamos criá-lo indo para ir em frente e usar o código de estúdio visual para criar um índice esquisito até agora. E lá temos o nosso índice de ponto Js arquivo para o nosso primeiro passo. Vamos escrever algum código que nos permitirá tratar um servidor Web exigirá um módulo chamado http para fazer isso. Agora há dois conceitos para descompactar nessa declaração. Primeiro, temos a ideia de módulos. Módulos em nota representam pacotes de código que nos permitem adicionar certos recursos para nossos aplicativos de notas
JavaScript. No caso de http, http é um módulo núcleo a ser observado para que não tenhamos que instalá-lo separadamente. Podemos usá-lo imediatamente, já que está incluído no código fonte de nenhuma duquesa. Então vamos pegar nosso módulo http em armazená-lo em um objeto constante chamado uma tenda ou melhor, H para tp. E, em seguida, vamos exigir módulo http assim. Então apontamos para o módulo com uma string, e então usamos a função exigem global que nenhum ducado s fornece para nós antes de seguirmos
em frente . Vamos esclarecer http. Http diz para o protocolo de transferência de hipertexto, e é um padrão para transferir dados e se comunicar através da Web. Ele essencialmente nos permite transferir dados através de hiperlinks através de páginas da Web cheias de texto . No nosso caso, estamos fazendo um servidor neste formato de protocolo http atual. Agora que temos o módulo H T T P, vamos cobrir as próximas duas etapas definindo nosso nome de host e relatório para o servidor Web. Nesse trabalho, o nome do host é um rótulo atribuído ao servidor para identificá-lo a outros aplicativos na Web. Por exemplo, nomes
de domínio como Facebook e Google são nomes de host oficialmente estabelecidos no sistema de
nomes de domínio da Internet. Para nossos propósitos em desenvolvimento, podemos anexar ao nome do host local, que é um nome de host que se conecta ao computador local. Então, crie um host chamado Variable com o valor de host local. Em um ponto forte, vamos criar uma constante chamada nome de host toda uma palavra, e então será um encolhimento com um valor de host local. Em seguida, temos o conceito de um porto. Um número de porta é uma maneira de identificar nosso programa de servidor específico na rede local como um processo
em execução. Outro número de porta de desenvolvimento típico é 3000. Então vamos criar uma variável de porta e, em seguida, ter que ser 3000 ótimo com nosso nome de host e porta . Agora estamos prontos para criar nosso servidor. Então vamos criar uma nova constante de servidor, e então vamos armazenar nosso objeto de servidor nesta constante para criar nosso servidor. Usamos função ah de http chamado cria já dado a nós através do módulo H T T P e agora armazenado em seu objeto de oito TV. Então vamos definir igual a 80 p dot criar servidor. Chame essa função usando seus parênteses. Agora criar servidor leva um argumento, que é uma função de retorno de chamada que nos permite especificar diferentes opções para o servidor. Esta função de retorno de chamada tem dois argumentos em si chamados wreck e rez, que são abreviados para uma solicitação de entrada e a resposta do nosso servidor. Então, ele estava fornecendo uma função de seta e, em seguida, para seus parâmetros, terá nossos objetos de naufrágio e rez. Vamos expandir esta função, bem como para o nosso servidor que é imediatamente responder com uma mensagem usando ponto final de resposta ou end residente para respeitar o nosso perímetro. A função UN para o objeto de resposta sinaliza para o nosso servidor que terminamos toda configuração. A própria função final leva os dados com os quais queremos responder. Vamos responder com um encolhimento os cumprimentos de um usuário e diz, Bem-vindo a observar vários chamado a função final dentro desta resposta. Objeto Rez. E então poderíamos fornecer uma string que diz, Bem-vindo à nota. Você pode colocar um ponto de exclamação para tornar tudo mais emocionante. Ótima. Estamos quase lá. Temos um servidor configurado. Agora temos que iniciar o servidor para permitir que ele comece a aceitar conexões em uma porta
especificada e nome de host. Para iniciar o servidor, queríamos começar a ouvir a solicitação. Como tal, temos a função de escuta ponto servidor. Então vamos ligar para o servidor. Ouça, função que o nosso servidor tem, e uma maneira de configurar esta função de escuta é passando na porta e nome do host como dois
primeiros parâmetros, então irá fornecer a porta, que é 3000 e eles também fornecerão nosso nome de host, que é nosso host local. Strict, então, para o parâmetro final irá fornecer uma função que servirá como um retorno de chamada que é acionado uma vez que um servidor está realmente ouvindo. Vamos fornecer uma função que registra uma mensagem ao conselho informando que o servidor está sendo executado. Nós também usaremos um modelo E seis, string
literal feita com ticks traseiros para amar eficientemente que estamos ouvindo em nosso
nome de host sob o número de porta especificado. Então, vamos fornecer a nossa função de retorno de chamada com a função de seta, e então não teremos quaisquer parâmetros para esta chamada de volta. Mas teremos algum código que diz ponto conselho registrou o fato de que e estamos usando uma string
modelo aqui para que possamos alcançar a interpolação de cordas mais rapidamente. E então usamos o cifrão, sintaxe Curly Brace para inserir variável. Então, vamos dizer que estamos ouvindo o nome do host ou melhor, que estavam rodando no nome do host. E então diremos depois de Colin que também estamos fazendo isso no número específico da porta. Ótima. Com o registro do ponto do cônsul, temos nosso código pronto para disparar, voltar para o terminal e dentro do primeiro diretório do servidor. Vamos invocar o programa de notas e executar nosso programa de índice que acabamos de criar. Então isso diz não para iniciar o arquivo Js ponto índice e, em seguida, temos a nossa mensagem de que o servidor está agora em execução no host local pobre 3000. Então está ouvindo para testar isso. Vamos para uma nova janela do navegador. Aqui estamos nós, e depois vamos para o anfitrião local 3000. E enquanto fazemos isso, temos uma mensagem que nos cumprimenta dizendo: Bem-vindo à nota Perfeito. Nosso primeiro servidor de notas está funcionando. Parabéns. Antes de seguirmos em frente, porém, vamos dar mais um passo para nos aproximarmos do que é típico de um
projeto de aplicativo de nó . Normalmente, para iniciar nosso aplicativo, usamos um comando. NPM começar com o comando start e PM vai olhar para esta seção de script de seu pacote Duchy filho Foul e executar o que está listado ao lado de iniciar. Então, vamos para os nossos pactos. Touchy algum telefone encontrar pacote ponto Jason e notou nossos scripts agora só têm o teste. Bem, podemos adicionar um 2º 1 pode ter certeza de usar cordas. Teremos início e como o valor terá o comando, entramos na linha de comando para encontrar o aplicativo que foi índice nó. E como você diz isso, podemos voltar para o nosso terminal agora, e com apenas um comando, essa camada extra do script de início do NPM pode parecer exagerada. Mas imagine um aplicativo que precisa acionar dois ou até 10 comandos diferentes para acionar o servidor. Bem, podemos capturar todos esses comandos dentro do script de início para NPM de repente e PM Start está olhando muito conveniente, além de muitos provedores de host para nó especificamente, olhar para NPM Start campo para saber como acionar corretamente o aplicativo. Tudo bem, dentro da nossa linha de comando. Agora vamos parar o servidor fazendo o controle, vê? E agora, em vez de usar nota, Index vai dizer NPM start. E como fazemos isso, vemos que estamos executando nosso comando de índice de nota e, em seguida, o servidor está ouvindo. E novamente, se atingirmos o nosso navegador, vemos em uma atualização que novamente temos Bem-vindo ao nó no host local 3000. Perfeito. Nosso servidor está ouvindo no host local 2000 como normal. Vamos seguir em frente e continuar melhorando este primeiro servidor HDTV com nota
7. Opcional: HTTP e na web: Vamos usar um momento para passar por http e Web solicitações para iniciar. Vamos pensar sobre a Internet e os dados na Web em geral. Na Web, empresas e organizações armazenam grandes bases de dados de informação. Eles têm uma lista de usuários, coleções de pastas e enormes quantidades de arquivos. Podemos acessar essas informações, mas visitar seus sites, o que nos permite acessar páginas onde podemos visualizar essas informações. Sempre que acessamos uma página nesse site usando nosso navegador da Web, estamos buscando AFA uma página ou imagem ou grupo de arquivos, páginas com imagens e assim por diante para fazê-lo. Nós acessamos esses arquivos para o navegador através do protocolo de transferência de hipertexto. Http. Como protocolo ou sistema oficial de regras que regem a Web, a transferência de
hipertexto nos permite usar o modelo de solicitação e resposta, ou
seja, no modelo de solicitação e resposta. Enviamos uma solicitação de arquivos de algumas organizações servidor Web. Temos uma resposta para o quadro sujo ou o que quisermos. Esses pedidos são chamados métodos de solicitações http, e existem alguns diferentes. Agora existem dois métodos de solicitações http primárias obter e postar uma solicitação get. Solicitado dados do servidor Web. Você geralmente faz solicitações de dívida quando visita uma página em um site solicitando que
a página seja atendida. Uma solicitação de postagem, por outro lado, envia dados para o servidor Web. Uma solicitação de postagem comum seria enviar um novo item para um feed de mídia social, como uma foto para o Instagram ou Story para Facebook. Nós Post datado para o servidor Web,
que, em seguida, vamos apoiar os dados através de outros usuários seguindo obter solicitações ou nossa própria subseqüente obtenção solicitação para a lista atualizada com são postados dados e informações. Existem outras solicitações http que são usadas, mas vamos comentar. Por exemplo, há a solicitação de exclusão,
que, mais especificamente, exclui um recurso de um servidor Web. Nós os usamos sempre que cometemos um erro nas mídias sociais, por exemplo, e queremos retirar um item. Talvez não devêssemos nos opor a ela. Há também o put Web request, que, de forma semelhante ao post request up carrega dados para um recurso. Mas este atualiza mais comumente um recurso já existente. Há também o pedido de cabeça, que é semelhante a um get um, mas em Lee recebe informações sobre configurações http de um recurso e não todo o documento. A solicitação de opções, mas transforma os métodos HDTV um servidor relatórios e a solicitação Connect nos
permite obter acesso mais especializado a um servidores Web. Rede compartilhada de recursos é. Finalmente, muitas vezes
você encontra uma lista dessas solicitações para uma organização específica coletadas na interface de programação de
aplicativos ou um P I em um P I ou interface de programação de aplicativos para a Web coleta um conjunto dessas solicitações http e ou para acessar postar, atualizar ou excluir informações de um servidor Web. Com isso, temos uma compreensão bastante sólida de como o protocolo de transferência de hipertexto organiza o acesso de informações na Web. Nós também sabemos mais sobre vários, onde pedidos e também o que um Web AP I implica. Vamos seguir em frente e continuar a codificação.
8. ES6 no Node: você deve ter notado que nota nos permite usar es seis sintaxe inter aplicações. Você seis introduziu novos recursos para JavaScript em 2015, incluindo funções de seta no modelo de ticks de
volta, sintaxe
literal que você vê aqui na linha 11 que nos permite contaminar strings
com mais facilidade. Bem, sim. Seis já estão por aí há alguns anos. Nota existe há mais tempo. Então, em sua pesquisa, você pode ver exemplos de código on-line que usam sintaxe mais antiga. Por essa razão, é importante destacar Alguns dos e seis já estavam usando, neste exemplo de um servidor http nó e demonstrar as alternativas na sintaxe mais antiga . Para começar, em sua função de retorno de chamada para a função de servidor cria, temos um exemplo de uma função de ar que igual e maior do que sinal aqui parece um ar, é por isso
que chamamos isso de função de seta. No entanto, nós também poderíamos ter criado esta função usando as palavras-chave de função no imposto de JavaScript
,o , que
significa que vamos tirar a seta e perceber isso com a palavra-chave function, que tem o mesmo efeito de criar uma função de retorno de chamada para nós. Então, se voltarmos para a nossa linha de comando. Interrompa o nosso servidor e reiniciado. Havia tão escutando no host local Port 3000. Ótima. Além disso, se tivéssemos que navegador de arte, atualizamos, ainda devemos ver. Bem-vindo à nota como antes. Certo, volte para o código. Outra coisa a chamar a atenção é o nosso encolhimento temperado, literal quando estavam registrando que o servidor está sendo executado em um nome de host e porta para alcançar encolher e nação Cat antes liberais modelo. Uma das melhores maneiras era adicionar strings e variáveis juntas para que pudéssemos tirar isso. Eu fiz uma barra de comando para adicionar um comentário barra barra barra no início desta linha e isso
permitirá que não ignore esta linha. E agora vamos substituir isso por uma função que faz um registro confidente novamente. Temos servidor em execução em, mas agora, vez de fazer interpolação, vez que esta é uma string normal, podemos usar contaminação com o sinal de adição em nosso nome de host. Agora nós temos outra string que será o nosso cólon aqui, e então nós temos um final para adicionar são importantes Agora isso não parece tão ruim, Mas imagine se você tivesse que inserir cinco ou seis variáveis. Quantas vezes você teria que suportar string e adicionar lá independentemente, vamos reiniciar nosso aplicativo e ver se ele ainda é logs que o servidor está executando. E, de fato, faz. Ótima. Demonstramos seis diferenças anteriores do Syntex com sua aplicação. Agora, se você criou aplicativos Javascript em frameworks como um reagir antes, você pode estar se perguntando por que não podemos usar as importações em impostos para pegar nossos módulos ou melhor, por que ainda não fizemos. Por exemplo, em nosso código aqui, pode ser tentador substituir o código onde exigimos módulo http com uma
instrução import que importa http de sua localização. Então, novamente, eu vou sair desta linha e então eu vou dizer, em vez de http constante iguais exigem o módulo. Eu vou pegar http em um objeto chamado http e usar a sintaxe de para obtê-lo de http e você vai encontrar este exemplo em frente reagir e aplicativos, por exemplo. Então, digamos que esta cabeça para uma linha de comando e tente reiniciar o aplicativo. E enquanto fazemos isso, Oh, não. Nosso aplicativo trava. As importações e os impostos aqui são inesperados. Bem, por que essencialmente, ele se resume a como a função de requisição é implementada no nó versus como ele importa obras de Essex it nó. A função require é uma reunião de função totalmente síncrona quando os notebooks no APP duquesa arquivá-lo, analisá-lo
e, em seguida, é cantores e granizo carrega o conteúdo dos módulos necessários à medida que avalia o revestimento de script de
trabalho. Essencialmente, o carregamento deste requer código acontece primeiro em uma ordem específica. Em vez disso, as importações em isenções fiscais é ordem porque em Essex, carregamento de conteúdo de outro arquivo com as importações em impostos pode acontecer de forma síncrona, então não
podemos usar importação porque quebra um paradigma nota de exigir módulos primeiro. Mas note está trabalhando em uma solução por muito tempo no futuro que irá suportar uma
sintaxe de importação semelhante . Por enquanto, continuaremos usando a função de requisição estável. Tudo bem, com essas seis diferenças destacadas, vamos voltar ao nosso código original. Então eu vou pegar de volta a nossa função original. Vamos remover essa velha maneira de contaminar a corda,
então usar o literal do templo também reverter para nossa função de seta aqui, e como salvarmos a cabeça de volta para o nosso servidor e reiniciado. Tudo está parecendo bem. Ótima. Vamos seguir em frente e adicionar um pouco mais de funcionalidade a este primeiro servidor de nó.
9. JSON, Nodemon, a funcionalidade mais avançada: Vamos adicionar mais algumas funcionalidades a este servidor de notas. Nosso objetivo será habilitar um novo endpoint no servidor que permita ao usuário obter informações mais específicas. No nosso caso, será uma página de dados no formato Jason, ou notação JavaScript Object, que tem traduções para alguns números, significa que irá mostrar um número soletrado como sua palavra inteira. Não, Jason não está muito longe de um objeto de script de trabalho normal. Uma diferença fundamental é que, em seu formato, cada chave deve ser cercada por aspas. Vamos tornar esses dados de tradução disponíveis em seu aplicativo através de um uber fora você é. Bem, vamos começar com o host local original Port 3000 e, em seguida, terminar com o
endpoint de traduções . Tudo bem, vamos começar explorando o objeto de solicitação que temos. Vamos começar explorando o objeto que temos no casaco dela. Então volte para o código que recebemos em nossa função de criação de servidor. Nós tínhamos esse objeto de solicitação, então vamos em frente e em um registro constante dessa solicitação. E antes de começarmos a servir em nosso aplicativo de linha de comando, vamos insultar uma ferramenta para tornar nossas vidas de desenvolvimento um pouco mais fáceis. Chama-se Caderno. Nenhum administrador nos permitirá reiniciar automaticamente o nosso servidor de notas sempre que atualizarmos aplicativo com um cofre, isso se tornará realmente conveniente para nós à medida que continuamos a desenvolver recursos. Afinal, ter que parar nosso servidor e reiniciá-lo manualmente após cada mudança pode se tornar muito tedioso. Então, na linha de comando dela, vamos instalar o homem conhecido So du n p m I, que é abreviação de instalação NPM. E então nevou mon. E depois vamos marcar a mesma bandeira morta com traço,
traço, traço seguro e depois traçar morte. O sinalizador Save Dead distingue o nó mont das dependências necessárias em uma versão
de produção do aplicativo. Agora está em um novo script para nossa lista de scripts que irá especificar para nós uma versão de
inicialização de desenvolvimento do nosso servidor. Então é a cabeça para o nosso pacote Dajae filho arquivo. Vamos adicionar uma nova chave chamada Morte e o valor será invocar o nó de
inicialização Monde . E então vamos olhar para o nosso programa de índice apenas como iniciar para índice de nó, não uma linha de comando. Podemos executar o script Dev agora, start é um especial onde podemos fazer NPM start sem quaisquer outras opções. No entanto, a morte não é um dos comandos do N PM, mas a execução do NPM é um dos comandos do PM. E, em seguida, podemos especificar são script morto como uma opção para MP em Executar. E enquanto fazemos isso, ele recebeu que o nó Mon começou e seu nó mont está ouvindo sua inscrição. E lá ele inicia nosso servidor rodando no host local 3000. Ótima. Agora temos o nosso servidor a ouvir. Vamos visitar esse servidor em nosso navegador e ver o log que substitui para o nosso
objeto de solicitação rec . Então aqui temos nosso confiável anfitrião local 2000. Vamos apenas refrescá-lo. E agora olhamos para trás para nossa linha de comando, e aqui vemos esse enorme despejo de dados em seu aplicativo. Isso representa todas as informações armazenadas nesse objeto solicitação. Não, certamente nos deu muitas informações para trabalhar, que nos dá muita energia ao interagir com o front-end no back-end do nosso aplicativo
Web. Então sinta-se livre para percorrer a coisa toda. Há muita coisa para te ligar. No geral, estes dados representam a informação que nos foi enviada através do navegador para os nossos fins estavam interessados em um euro l campo fora deste objeto pedido. Então interco para baixo é realmente colocar este terminal no lado esquerdo e, em seguida, nosso código
no lado direito e tirar esta árvore aqui com comando sendo para que a barra lateral desapareça. Você sabe, em seu índice, como arquivo, nós vamos pegar o seu l do nosso objeto de pedido usando E s seis destruições em impostos. Então, ao invés de escrever constante seu l equivale a solicitar que o seu l podemos usar um atalho em vez de seu fora e fazer uma variável euro local para a função e, em seguida, definir o seu valor para o ponto de solicitação seu valor l que é, dentro desta solicitação objeto. E agora, em vez de registrar todo o nosso objeto de solicitação, nós vamos registrar o seu l. Vamos tirar a primeira causa dessa lei porque nós não queremos mais grandes despejos de dados. E como você salvar notar que o nó Mont Runner ouvir para que salvar. E então começamos o nosso servidor e agora podemos ver este ano l como fazemos isso em ação. Então vamos visitar o host local 3000 novamente, desta vez em uma tradução no ponto. E à medida que fazemos isso parece que não estamos recebendo uma resposta de dados. Isso ocorre porque ainda não o tratamos adequadamente, e também porque as solicitações não estão definidas. Vocês provavelmente viram que vamos ter que fazer o seu fora do naufrágio, então vamos voltar. E à medida que
recarregamos, ainda vemos Welcome to Node. Mas vemos que nossas traduções aqui foram registradas para o conselho. Incrível. Também recebemos este pedido para a fé. Eu chamei aquele ícone de Bob. Isso representa esse ícone na Barra Ural, ou guias para páginas da Web. Portanto, observe que os navegadores solicitam automaticamente esse arquivo por padrão a partir de um servidor Web. Agora não estamos a dar um favor. Ícones que eu co arquivo no momento, mas você pode ou não pode ter um ícone de favor como este aparecendo no host local para você
Já,
você Já, Bowser pode ter dados de navegação anteriores armazenados em seu histórico por causa disso, ele usa ícones de favor anteriores que encontrou de abs anteriores no mesmo mural. Tudo bem, nunca. Fizemos o login do euro no console. Vamos usar isto. Você está fora para adicionar mais funcionalidades ao nosso servidor. Sabemos que somos capazes de receber as traduções do seu L Agora, no caso das traduções euro, vamos enviar de volta alguns dados diferentes. Vamos criar uma instrução if a captura as traduções,
seu L e, em seguida, termina a resposta para o servidor com alguns dados de teste para representar traduções. Então vamos dizer que se encontrarmos traduções, então se você é l é igual a traduções de barra, que deve ser, como estamos vendo em nosso terminal aqui, então nós vamos responder com diferentes funcionalidades. Então é um ponto de reserva, e então vamos enviar de volta um psiquiatra que envia traduções. Então você diz que este banimento de nó reinicia ou Nouman em vez reinicia ou aplicação, e agora podemos atualizar. Ele refinado traduções está registrando em vez disso. Ótima. Vamos estender essa funcionalidade e ter os dados retornados algum JavaScript na forma de Jason em vez desta força para começar. Vamos criar um objeto que representa nossas traduções para que alguns dados trabalhem com o que está fazendo objeto chamado traduções, com algumas conversões para 12 e três. Então vamos dizer que as traduções da nossa faculdade é uma chave que é explicada. Uma por duas chaves. Ele soletrou seus dois. E então você provavelmente pode adivinhar que três pontos são três. - Legal. Agora temos que usar essa resposta. Objeto agora para enviar de volta este objeto traduções em Jason para o primeiro off irá definir um cabeçalho para a resposta. Um cabeçalho se identifica para o navegador. Que tipo de dados estavam enviando de volta no nosso caso irá definir o cabeçalho com a
função de cabeçalho definido dentro deste objeto de resposta. O primeiro argumento é a chave do cabeçalho Queremos mudar. O valor é um tipo específico de cabeçalho que queremos especificar. No nosso caso, a chave é o tipo de conteúdo. O valor é aplicativo, Jason, ambos os valores de string s. Então, em vez de levantados e vamos ter um cabeçalho de conjunto de pontos de rez. Então, levante dúvidas que cabeçalho A chave é o tipo de conteúdo, que tem um invólucro legal de caracteres maiúsculos e, em seguida, separados por um traço. E, em seguida, o valor é aplicação barra Jason Now para a transmissão real de dados para enviar de volta dados através da resposta, nós escrevemos um fluxo de dados através dele agora. O que é um fluxo de dados. Um fluxo é uma sequência de dados que você pode adicionar continuamente escrevendo para ele ou pegar dados partir dele lendo continuamente a partir desse mesmo fluxo no back-end do nó. Muitos dos objetos de notas que você transmite para tornar dados legíveis e que podem ser acessados. Isso significa que enviar informações por meio de um objeto de resposta gravará no
fluxo de resposta . Então vamos dizer, Erez ponto certo? E queremos escrever nosso objeto de traduções. O fluxo em si, no entanto, toma strings como seu parâmetro, o que representa um problema, já que nossas traduções são atualmente um objeto. Mas não se preocupe, podemos usar a string de ponto Jason se eu funcionar para transformar este objeto traduções em uma string
completa representando Jason, então Jason é uma variável global em nota. Em seguida, podemos acessar a cadeia de cinco função e, em seguida, passar nossas traduções. E agora esta deve ser a versão cortada de nossas traduções. Objeto. Em seguida, adicionaremos nosso ponto e vírgula no final para completar nossa linha. E agora vamos rever as nossas traduções e apontá-las como o fazemos. E o que encontramos é nosso objeto de transições em Jason. Forme-me agora também vemos o bem-vindo à nota final resposta. Isso ocorre porque o método correto do ponto de resposta não termina completamente a resposta inteira. Se não queremos que bem-vindo para saber, para aparecer podemos terminar com rez ponto final assim,
como fazemos isso e atualizar aqui, vamos ver que em Lee Are Jason objeto é representado. Ótima. Acabamos de explorar alguns recursos mais complexos do módulo de servidor http que é necessário observar Nós também abordamos o conteúdo do roteamento respondendo especificamente às traduções que você estava. L em seu aplicativo vai querer recursos de roteamento muito mais poderosos no futuro, mas o código para isso se tornará cada vez mais complexo. Se tentarmos fazer isso com objetos de nota nativa para auxiliar nesse processo, não, podemos usar uma estrutura chamada Express, que nos ajudará especificamente a criar aplicativos de servidor de nó mais complexos com grande roteamento métodos. Tudo bem, vamos seguir em frente e continuar o revestimento
10. Opcional: o loop do evento: muitas vezes você vai ouvir que nenhum Duchy s tem a capacidade de executar várias operações simultaneamente, há muitas abordagens em ciência da computação para conseguir isso um tal gerando vários processos para executar diferentes partes de código ao mesmo tempo tempo. Mas vamos explorar nenhuma DGS é solução. As organizações de ponto do loop de eventos têm execução simultânea. Vamos esclarecer o que queremos dizer com execução simultânea na programação. Execução atual refere-se a quando os programas podem executar várias operações simultaneamente
ao mesmo tempo, vez de sequencialmente uma após a outra. Isso pode levar a grandes melhorias no desempenho desde o tempo que isso foi salvo quando as operações não
são bloqueadas umas pelas outras. Por exemplo, uma proibição pro sequencial poderia ser significativamente melhorada se tiver operações depois são particularmente lentas. Por exemplo, se ele executou a operação lenta simultaneamente em segundo plano, ele ainda poderia executar as seguintes operações na vanguarda. Então, como é que esta simultaneidade é alcançada? Primeiro vai re levantar a idéia de que nota é conhecido. O bloqueio significa que solicitações http operações de banco de dados leitura e gravação a partir do
hardware do computador é disco para dados através de Ios são operações de não bloqueio no tempo de execução da nota . Enquanto está executando essas operações são solicitadas a serem executadas, dada uma função de retorno de chamada e, em seguida, o tempo de execução se move para fazer outra coisa, que permite que o tempo de execução continue executando casaco uma vez que a operação tenha sido concluída algures no futuro. A função de retorno de chamada que foi originalmente fornecida é acionada. Esse efeito cumulativo torna a execução dessas operações simultâneas na natureza. Agora vamos estender essa idéia para o loop de evento de nota. Bem, o script Java Runtime está executando código. Ele aguarda que as operações sejam concluídas e para retornos de chamada. Se eu, juntamente com cada um desses callbacks, vem com a mensagem que é bonito que identifica junto com uma chamada de volta agora, JavaScript puxou todas essas mensagens em aguda. Você pode pensar no Q como uma linha no
D.M . V. Ele é organizado em um primeiro em primeiros minutos, significa que mais mensagens entram na linha ou na fila. A primeira mensagem que entrou será a 1ª 1 que sai agora. A base do Notes Event Loop é que ele é um bonito que puxa para cada mensagem seguinte, encontrando-os em uma linha que executa completo que callback uma mensagem de cada vez. Agora vamos estender essa idéia de operação simultânea com uma metáfora que nos ajudará a ilustrar esse conceito do loop de eventos e a capacidade de executar código através dele. Ao
mesmo tempo, chama-se metáfora dos Mestres e Mordomos. Então é assim. Todas as manhãs o mestre acorda. O dia começa com um mordomo chefe, pedindo ao mestre uma tarefa para fazer. A mensagem pode dar ao mordomo chefe uma tarefa ou várias tarefas, e o mestre então volta a dormir. Head Butler, em seguida, divide essas tarefas entre os outros mordomos e, em seguida, eles começam seu trabalho. Assim que um mordomo completar a tarefa, ele sai da porta da mensagem para apresentar um relatório. O mestre, então, recebe em um servo de cada vez para ouvir o relatório. E baseado no relatório, o mestre pode até dar ao mordomo mais cuidado tácito. Sim, mas nessa fase intermediária ali, o mestre tinha vários servos diferentes executando código ao mesmo tempo. E no final, o all that up na fila para enviar de volta o relatório para o mestre. Em suma, no nosso caso, o mestre é como o nosso runtime javascript capaz de delegar tarefas Simultaneamente, os mordomos não estão bloqueando operações Io no loop de eventos é que Q de mordomos que
completaram um processo e precisa relatar de volta para o mestre. Em alguns, graças à E/S sem bloqueio e ao loop Event, podemos alcançar a execução simultânea em nenhum ponto gs.
11. Expresso: o que é expresso, conforme definido pela Documentation Express, é um framework Web rápido, opinião da
ONU, deopinião da
ONU,
minimalista para nenhum holandês. Sim, tudo bem, vamos desempacotar esses termos. Primeiro, expressa muito rápido devido à sua natureza mínima na implementação. Como resultado, podemos acessar recursos poderosos como roteamento e resposta a diferentes formatos de dados a um custo
muito baixo. Expressa un opinativo. Não há uma maneira certa de forçar para escrever código para o seu framework Web com o Express. Portanto, express permite muita flexibilidade. Isso contradiz outros frameworks como, por exemplo, talvez ruby on rails, que é comumente usado para olhos AP que querem que você escreva código de uma maneira específica a maior parte
do tempo. Finalmente, como uma estrutura Web expressa, maior força vem na criação de um P eyes para servidores Web. Você poderia pensar em um napi I como uma coleção de relacionados seus L's para pegar informações de um servidor e seu banco de dados Express contém toneladas de métodos para configurar HDTV, obter métodos, métodos postar, para
não mencionar o outros, como o concurso mais cedo. Assim, criar um P I com express torna-se muito mais simples do que o Native Note Express também contém recursos agradáveis como roteamento, que lhe permite encontrar endpoints sobre aplicativos e olhos AP, a fim de ter mais controle sobre o que informações que enviamos aos nossos solicitantes. Tudo bem, agora que tivemos esta introdução rápida para expressar, vamos seguir em frente e construir alguns servidores Noticias legais e expressar os olhos AP.
12. Como configurar a API de Fortunes: Vamos sentar nosso primeiro nó e expressar aplicação. Este aplicativo será um servidor no FBI. A lista de fortunas, com base no pedido de um usuário por fortunas, vai devolver dados interessantes como prever o futuro e um número de sorte para o usuário. Tudo bem, para configurar, volte para sua linha de comando e encontre o diretor que você está usando para seus projetos de nó. Então, queremos estar no nó Post Press agora. Dentro de nota, Post Breast vai fazer um novo diretório chamado Fortunes FBI. Quando combinarmos as palavras, usaremos o invólucro de cobra ou conectando as palavras com Sublinhados. Mas você também pode usar o invólucro de camelo ou capitalizar a palavra combinada ou qualquer convenção com a qual você esteja confortável e familiarizado. Então faça um novo diretório com M. K. Dirk Anand, e então diremos que são as fortunas. Sublinhe um P I. Não, vamos mudar para ele para navegar dentro e então uma vez estivemos aqui. Vamos inicializar nosso projeto com o NPM em seu comando e PM em. Ele geralmente nos leva através de uma série de comandos interativos para configurar um pacote da Jason arquivo. Para nós, no entanto, podemos sempre alterar a resposta dessas perguntas mais tarde, mas editando o arquivo do ponto do pacote Jason. Então vamos acelerar o processo usando o traço. Por que opção para o comando passar pelo processo de minutos NPM? Lee não interativo significa que vamos pular todas essas perguntas, então vamos dizer NPM nele. Depois, Dash. Por que ótimo. Agora temos o nosso pacote dot arquivo Jason e seu nome de projeto Fortunes A P I. Antes de abrir o projeto em nosso editor de código, vamos instalar em dependências externas para este projeto. Primeiro, vamos instalar o Node Mon como uma dependência de desenvolvimento. Se você se lembra conhecido Monde foi uma boa adição em cima do nó que nos permite ter um acordo . Eu tenho servidor de desenvolvimento que atualiza são aplicação nota sempre que salvar uma atualização de queda. Então vamos instalá-lo com o flak Save Dead. Também podemos usar o NPM I, que é um atalho para a instalação do NPM. Então vamos usar o NPM. Estou salvando o conhecido mon como uma dependência de desenvolvimento. Agora estamos instalando o Note mont como uma dependência de desenvolvimento porque não precisamos dele em um ambiente
de produção. No entanto, uma dependência que queremos tanto em nossos ambientes de desenvolvimento quanto de produção é a estrutura
expressa. Então, quando instalarmos o Express no PM, eu expresso, vamos usar a bandeira normal. Ótimo. Com isso, preparamos o que precisamos para começar a trabalhar nesta fortuna. A p I. Vamos começar a escrever o código para este aplicativo em seguida.
13. JSON para as Fortunas: Agora que temos nosso projeto criado, vamos abri-lo em seu editor de código e começar a construir essa sorte a p I, pelo projeto na linha de comando e depois abri-lo. Vou usar um atalho de código de estúdio visual para abrir este. Então isso é código e ponto espacial Então vamos puxá-lo aqui. Vou deixar esta tela cheia agradável no momento. Você deve ter uma pasta de módulos conhecidos para todos os nossos módulos para suportar Agora, também a falta Paquistão Jason que criamos com NPM nele e também um bloqueio de traço pacote Dodge uma amostra. Você pode pensar nisso como uma versão super estendida do ponto do pacote Jason cair onde cada dependência de módulo
único é explicitamente listado junto com suas próprias dependências. Você vê, só porque nós Onley instalado Express em Nordmann não significa que nós Onley exultam, expressando nenhuma mãe afinal, ou conhecido um ou express atender outros módulos para ser instalado como mais sub dependências O pacote traço bloqueio Dajae resolver tudo permite que essas dependências de instalação Temos agora em nosso módulo ou melhor, são modelos conhecidos completos. Tudo bem, agora que temos uma compreensão de todos esses arquivos dentro do projeto. Vamos configurar o nosso A P I. Com alguns dados para o A P, eu vou enviar de volta diferentes objetos Jason que representam fortunas com base no
pedido do usuário para coletar. Todas essas fortunas vão guardá-las em um arquivo chamado Fortunes dot Jason para a guerra para manter nosso projeto limpo e organizado. Também iniciaremos esses dados em uma nova pasta chamada Data. Então vamos fazer uma nova pasta chamada Data, e então dentro dessa pasta, vamos fazer um novo arquivo chamado Fortunes dot Jason. Aqui está dados barra fortunas ponto Jason. Ótimo. Agora, como um arquivo formatado Jason estará escrevendo um arquivo cujo conteúdo representa
notação de objeto JavaScript , que pode conter tarefa escapou objetos ou uma corrida. Há uma diferença importante a considerar quando escrevemos isso, entanto, neste formato para nossos dados, cercamos nossas chaves de objeto com strings. Tudo bem, nossa coleção de fortunas será contida dentro de uma matriz, então vamos começar com alguns colchetes então, para cada um dos itens nesta matriz de fortunas terá um objeto de script de trabalho para representar um indivíduo fortuna para uma volta e serviço. É típico de cada item ter 90. Vamos dar este primeiro objeto, e eu deaky cercado por um psiquiatra ou melhor, com a indústria. E lembre-se, nós cercamos a chave com aspas para o mercado como um psiquiatra para o primeiro objeto
dará seu I d. um bom. Agora vamos pensar em alguns dados que queremos para cada objeto da sorte. Cada fortuna deve ter uma mensagem. Feijões chave Fortunes muitas vezes prevêem o futuro, afinal. Então, para o 1º 1, vamos dar ao usuário algo esperançoso. Que tal uma mensagem que diz isso? Aqui temos nossa chave de mensagem e a mensagem é, amor está ao virar da esquina. Legal. Sinta-se livre para colocar qualquer mensagem que você gosta em vez disso para tornar este objeto fortunas mais interessante. Vamos também dar-lhe um número da sorte, bem como um animal espiritual. Então, para este, é sorte. O número será 12. Se você colocar qualquer coisa que você gosta no espírito animal será Doc Nice. Agora temos um objeto da sorte. Vamos replicar a mesma coisa para dois outros objetos. Incremente as teclas I D e alterando o número da sorte e os animais espirituais. Então eu vou ir em frente e copiar isso. Certifique-se de que você tem uma vírgula após o 1º 1, bem como o 2º 1 Agora, esta idéia deve ser para este. Deve ser três. Que tal a mensagem para o primeiro? Ou melhor, o 2º 1 será. Você encontrará um grande tesouro. Vamos mudar isso. Número 215 em um animal espiritual estará deitado em cima desse cara. Quero dizer, que tal isto? Uma pessoa lhe dará ótimos conselhos. O número da sorte para este será 30. E que tal urso para o último? Incrível. Sinta-se livre para adicionar quantas fortunas quiser a esta matriz para fins de desenvolvimento. Três devem ser suficientes, embora com isso, temos nossas costas em dados para nossas fortunas. Um p I. Vamos seguir em frente e criar um endpoint para realmente servir esses dados.
14. Primeiro de endpoint do Express: Agora que temos o nosso back-end, vamos corrigir o ap I expresso em torno dos dados para servi-lo. Primeiro, vamos inicializar nosso projeto com um índice desonesto s falta que representará a raiz do nosso projeto de nó
JavaScript. Tão bom e criar no nível da raiz, o índice desonesto tanto quanto não na pasta de dados, mas dentro das fortunas raiz. Pasta Ap I no nó o arquivo Js ponto índice é um ponto de partida típico para pacotes e modelos. Por isso, a criação do nosso servidor com um arquivo Js de ponto índice é uma boa escolha. Agora, nosso objetivo com este arquivo Js de ponto índice será criar um servidor Web que permita que um usuário faça um pedido para as fortunas e obtenha os dados que definimos em seu ponto fortunas Jason Fall para criar este servidor Web, agora temos o poderoso framework de aplicação web no nó chamado express. Então, vamos exigir express de seu módulo designado e armazenar fora o resultado em uma constante também chamada express. Vamos fazer uma constante expressa e, em seguida, exigir o módulo expresso. O que este concerto expresso representa agora? Esta constante expressa necessária agora é uma função que nos permite criar a
aplicação expressa . Esta função, quando usada, contém muitas opções de configuração no objeto resultante que ela cria. Vamos explorar essas várias opções em breve, mas primeiro temos que fazer nosso aplicativo expresso objeto usando esta função. Então vamos começar o resultado de chamar esta função expressa em um aplicativo chamado constante, uma vez que depois de tudo o que cria são expressos aplicativo Nice. Agora temos um aplicativo expresso pronto para configurar. Agora este objeto de aplicação é realmente muito poderoso. Já podemos usá-lo e é métodos personalizados para criar um endpoint http real com uma função. Ao contrário de nosso exemplo de código nativo anterior, onde tivemos que alcançar o roteamento para um método get verificando o seu L Express fornece uma função get muito bem nomeado que nos permite criar métodos get para o FBI. Então vamos chamar o método get neste objeto aplicativo agora que temos Suplicy app dot ainda que é a função get. Esta função get tem dois parâmetros. O primeiro parâmetro representa o ponto final de um P I que queremos acesso. Lembre-se que por um endpoint, queremos dizer que a última parte do URL, por exemplo, em Facebook dot com barra fotos. Fotos é a entrada ou no facebook dot com barra eventos. Eventos é o ponto final. Então, para os nossos dados de fortunas, talvez faça sentido ter um ponto final de sorte para ficar online com um comportamento P I. Começamos também a nomeação deste ponto final com uma barra para representar que estavam pendentes isso até o fim da nossa Europa. Então nós fornecemos uma corda que começa com uma barra e então argumentamos fortunas. Então, para o segundo parâmetro, fornecemos uma função de retorno de chamada. Esta função de retorno de chamada será acionada quando o endpoint fortunes for atingido no A P. I para esta função de retorno de chamada fornecerá uma função de seta. Ele também terá dois parâmetros chamados de naufrágio e rez, que representam o naufrágio o bastante no objeto de solicitação e resposta. Então aqui está a nossa função era e, em seguida, tem dois parâmetros naufragar e descansar novamente. O que são naufrágios e descanso? Bem, eles são abreviados para pedido ou naufrágio e resposta de prisão. O objeto de solicitação representa quaisquer dados enviados pelo usuário para o nosso P. I. O objeto de resposta tem outras opções personalizadas para nos permitir responder ao usuário com dados
específicos. Vamos explorar o objeto de solicitação em detalhes mais tarde. Além disso, antes de enviarmos qualquer dado com o objeto de resposta, temos que fazer um pequeno trabalho de desenvolvimento em um concerto, esse log para ter certeza de que este endpoint da fortuna está realmente funcionando uma vez que você iniciar nosso antes de enviarmos qualquer dado com o objeto de resposta,
temos que fazer um pequeno trabalho de desenvolvimento em um concerto,
esse log para ter certeza de que este endpoint da fortuna está realmente funcionando uma vez que você iniciar nosso
aplicação. Então, dentro do corpo da função de retorno, vamos ter um diálogo cônsul que diz, pedindo fortunas. Incrível. Agora, antes de realmente tentar acertar este endpoint em uma versão em execução do aplicativo, ainda
precisamos fazer uma chamada para a função de escuta neste aplicativo, a fim de fazer este servidor viver tão bem na parte inferior após o nosso primeiro método get. O que é chamado de método de lição que fará o servidor viver. A função de escuta está bem, tendo apenas um parâmetro, um número que representa o número da porta a ser executado sem um nome de host. Como segundo parâmetro, a porta será anexada ao host local. Agora é típico que o número da porta de desenvolvimento seja 3000. Também estar usando o número da porta mais de uma vez, então vamos começar em uma constante chamada porta logo após a nossa exigência de relatório expresso
vai ser 3000. Em seguida, nós fornecemos como o primeiro parâmetro para ouvir. Então vamos dar-lhe a porta,
em seguida, como seu segundo parâmetro. Vamos reviver uma função de retorno de chamada, que registrará uma mensagem em seu console dizendo que o servidor está escutando em nosso número de porta. Vamos usar um modelo literal, encolhendo muito facilmente. Insira o número da porta para que tenhamos uma função de retorno com um ar aqui. E, em seguida, ele vai apontar para um log constante com o nosso template literal, que é os ticks traseiros ao lado da única tecla que escuta na porta. E, em seguida, vamos inserir nosso número de porta usando a sintaxe Curly Brace sinal de cifrão. Lá vamos nós e percebemos que quando você usa uma função era, a única se estende por uma linha. O re uso de chaves é desnecessário. Ótima. Estamos quase lá agora. Só precisamos esperar facilmente. Ligue o servidor da nossa linha de comando. Poderíamos usar o índice de nota de comando imediatamente, mas é convencional para fornecer um script de início em um projeto de nota que especifica como
acioná-lo . Então é a cabeça para o nosso pacote ponto Jason. Vamos adicionar um novo script chamado start e isso irá apontar para o índice do nó agora. Se usarmos NPM start, ele deve acionar a nossa aplicação. No entanto, medida que estamos desenvolvendo, isso significaria que temos que parar o processo de início do NPM e reiniciar cada vez que fizermos uma alteração. Em vez disso, vamos fornecer um script mais conveniente que as chamadas são conhecidos pacote Mon que pode atuar como um serviço de recarregamento
ao vivo do nosso servidor. Quando fazemos atualizações, vai armazenar este em um script chamado Morte e tê-lo aponta para notar Mont Index, que aciona o nosso arquivo Js ponto índice com um nó mon ferramenta de recarregamento ao vivo. Então isso não é nenhum índice de Dubon apontado para você pela morte. Incrível. Com isso, vamos acionar sua aplicação na linha de comando com NPM Run Dev no terminal, você quer estar no nó post mama barra fortunes um p I que vamos usar NPM executar comando, em seguida, especificar são script morto e eles são conhecido começou trenós visitar anfitrião local Port 3000. Então, uma vez que atingimos nossas fortunas e apontamos em nosso servidor aviso que estamos recebendo anfitrião local últimas fortunas nós temos solicitando fortunas registrando para nosso cônsul que é executado pelo código que temos aqui mesmo em nosso ponto final get para fortunes. Legal. Agora você notará que, mesmo que estejamos registrando no cônsul, nosso navegador pára sem parar nas informações e tenta obter o que estamos tentando obter com base nesse pedido. Bem, infelizmente, não
estamos enviando dados de volta, então vamos descobrir como exibir alguns dados no navegador. Como resultado deste método get e solicitação. Vamos substituir o registro de concertos por uma função chamada Enviar. O método de envio está disponível no objeto de resposta ou representado por rez que temos em nossa função de retorno de chamada. Como significado por seu nome, o método de envio envia de volta os dados como resultado da busca. Então, em vez de chamado Sadat, Log terá método de envio nesta resposta. Objetivo como dizemos isso, nosso serviço deve atualizar e vamos colocar este lado a lado para que possamos ver que ele está realmente atualizando uma vez que fazemos alterações. Tudo bem, então nós dizemos isso e então nós voltamos para o destino de fortunas aqui e lá vamos nós. Temos pedidos de fortunas em nossa brasilena. Ótima. Agora também estamos retornando uma mera sequência de dados. No entanto, idealmente, queremos devolver essa totalidade ou taxa de fortunas. Agora, antes que possamos enviar esses dados, precisamos ter acesso a eles. Dentro deste arquivo, isso significa que vamos exigi-lo no topo como um módulo em uma constante chamada fortunas. Então é uma fortuna constante é igual a um requisito de Vamos olhar para este diretório atual,
notificado por ponto, notificado por ponto, barra olhar para a pasta de dados e, em seguida, encontrar a pasta Fortunes dentro disso. Agora poderíamos substituir uma série de pedidos de fortunas por nossa constante fortunas que
temos . No entanto, o objeto de resposta expressa vem com um método mais poderoso, criado
especificamente para responder e renderizar com dados Jason Formatted. Este método, em vez de enviar, é chamado Jason. Então vamos voltar. Nosso objeto fortunas com o método de salão ponto j resposta. Então estamos enviando o ponto de reserva Jason e colocando em nossas fortunas que eram necessárias. Você diz que isso notou que ele recarrega. Vamos recarregar isso, e agora temos todo o nosso conjunto de fortunas em nosso navegador. Incrível. Acabamos de criar o nosso primeiro método de TV 80 neste fortunas AP I Excelente trabalho. Vamos seguir em frente e continuar melhorando essas fortunas. AP. Eu construí no Express
15. Opcional: a startup com uma hora de execução: À medida que você pesquisa aplicativos de nota e expressa, você pode ver que isso começa obter pontos para um arquivo em uma pasta BIN chamada www. Como você continuar a criar aplicativos de nota com expressar o futuro, você pode se deparar com ferramentas como gerador expresso, que também criar automaticamente este sido barra www. Agora este foi W arquivo W é um arquivo de vontade executado, que cuida de iniciar o aplicativo de nota para os nossos propósitos. Ele adiciona outra camada entre o nosso código de aplicação no índice touch es e o código que realmente aciona nossa aplicação. No entanto, pode ser uma maneira conveniente de configurar nosso nó e organizar o aplicativo expresso, já que a pasta BIN pode conter outros arquivos desculpáveis, que podem definir outras maneiras de iniciar o aplicativo, talvez em um ambiente de teste ou configuração personalizada. Então vamos criar esta pasta bin na parte superior do seu aplicativo bem ao lado dos dados, vamos ter uma nova pasta chamada Ben. Agora, o nome BIN é herdado da convenção de nomenclatura da maioria dos sistemas operacionais em si. Por exemplo, em Michael S ou Lennox e até mesmo janelas arquivos desculpáveis vivem dentro destas pastas sido. Agora, se você não está familiarizado com a diferença entre um arquivo de vontade executado e queda regular. Você pode pensar que ele executou um arquivo como um projetado para executar uma função específica no computador. É basicamente um programa alugável agora. O herbal execute geralmente é ilegível como código, uma vez que já foi compilado em código de máquina para o computador executar. Daí a sua execução de ervas. Tudo bem. Dentro desta pasta bin, vamos criar arte. Www Desculpável. Então vamos fazer um novo arquivo aqui dentro, e ele será literalmente apenas www sem nenhuma extensão. Incrível. Agora vamos reafirmar o propósito deste www desculpável. Este executado todo o arquivo vai cuidar de iniciar o nosso aplicativo. Isso significa que vamos mover nosso código que realmente inicia o aplicativo express e não está ouvindo em nossa porta de host local em vez de aparecer. Então vamos pegar as linhas sobre índice ponto Js código que assumiu o controle de configurar a porta e ouvir a aplicação e colocá-lo dentro deste www desculpável. Então vamos pegar a porta e cortá-la. Na verdade, vamos salvar este arquivo para não ter mais a porta. E não se preocupe, o servidor de desenvolvimento vai falhar em segundo plano. Isso é porque ainda não o configuramos completamente. Também queremos toda essa função de ouvir. Então, em nossa Www, nós temos nossa função de escuta aqui, também. Ótima. Agora, se você olhar para o código, observe que agora estamos usando uma variável at que não existe. Nós vamos precisar de uma maneira de agarrar isso na variável e exigi-lo, a fim de exigir, embora nós vamos precisar ter certeza de que nosso aplicativo no arquivo de ponto de índice Js é terrível ou, em outras palavras, exportado. Então sua cabeça de volta para a queda do índice RJ e que irá completar nosso arquivo com uma linha de código que declara este objeto APP como a exportação. Para fazer isso, utilizará alguma sintaxe especial de nó chamado módulo DOT export. O cuida de configurar este aplicativo constante como exportação para este módulo que estamos criando agora. Usando exportações de ponto módulo, podemos expor o aplicativo como um módulo em si para outros arquivos para exigir e trabalhar com. Então, vamos usar o módulo que exporta e configurá-lo para o nosso aplicativo geral. Instância. Ótimo agora que criamos nesse módulo dentro deste índice, FOB de
Thaci, o nome index dot gs não parece mais fazer tanto sentido. Então vamos renomear nosso arquivo para sequestrar Sim, para torná-lo representativo do fato de que está hospedando o módulo APP. Então, em vez de indexar RGs, agora
vamos chamá-lo de aplicativo. Dodgy é legal. Agora você pode adquirir no topo do nosso www executar irá arquivo dentro do bin. Então dentro de nosso estado, temos www e no topo, vamos um coro e vamos ter que olhar para trás um diretório e obter o nosso módulo de aplicativo Now . Mais uma coisa antes que este executado esteja pronto como um ble executado, vamos precisar de uma maneira de dizer ao nosso computador que estamos criando uma nota. Executar ervas. Para fazer isso criará o que é chamado de linha shebang no topo da nossa execução. Herbal de novo, uma linha no topo do executável dela. She Bang é um personagem marcado por uma combinação do sinal de libra numérica e um ponto de
exclamação, e é usado para dizer a nossa plataforma se encontrar a maneira específica de interpretar são desculpáveis . Então vamos fornecer a linha que identifica é desculpável e diz ao nosso computador para usar um
intérprete de código com nó executado até o topo aqui temos nossa libra e nosso ponto de exclamação , que é o banco dela. E eles iam olhar para a pasta de usuário que é global para o sistema. Olhe para o Global Esteve no Sistema. Vamos olhar para a pasta do ambiente e dizer-lhe para iniciar a nota. Então é barra usuário usr barra bin barra final e, em seguida, nota. Ótima. Agora já temos essa execução. Depois de ter declarado isso como uma nota desculpável, vamos atualizar nossos patches dot Jason Start e Deb script. Agora, para executar este foi w arquivo em vez do arquivo de índice que eles obtiveram renomeação após GS e não contém mais são revestimento de escuta. Então, dentro do ponto do pacote, Jason, vamos começar. Quero dizer, olhe para dot slash sido www no nó mon tem slash bin slash www Agora vamos em frente e reiniciar todo o nosso servidor,
limpá-lo e, em seguida, refazer NPM Run death em nosso diretório fortunes ap i da linha de comando. Então, como ele vai lá, ele começa ponto barra sido tão www E nós também podemos verificar em nosso navegador Se nossos dados ainda aparece em uma atualização e agradável. Tudo lá como de costume agora que temos indesculpável cuidando de iniciar nossa aplicação . Nosso código tornou-se mais módulo surgiu com um abduzido s queda especificamente cuidado de criar o aplicativo expresso e executar ervas que cuida de iniciá-lo. Ótima. Vamos seguir em frente e aprovar esta sorte que continuo explorando o expresso.
16. Obtenha uma fortuna de aleatória ou uma por ID: Vamos adicionar dois pontos finais seu AP fortunas. Eu agora um vai ter uma fortuna aleatória. O próximo nos permitirá obter uma fortuna específica, mas solicitando,
é I D. Vamos enfrentar o 1º 1 e um novo método que nos permitirá obter uma fortuna aleatória. Agora é típico para AP. Olhos para usar sub-rotas ou espaços de nomes estavam recebendo para os dados com base em um
endpoint anterior . Então, em vez de algo como um todo novo fortunas sublinhar aleatório no ponto Recon ninho um aleatório e ponto após a rota fortunas ou espaço nome ou após o espaço nome fortunas para
representar a obtenção de fortunas aleatórias. Estamos usando o método get para a nossa aplicação expressa mais uma vez. E desta vez vamos usar o ponto final aleatório Necid sob fortunas. Então vamos dizer em um cochilo, Doc. Sair das fortunas. E agora temos esse espaço de nomes de fortunas. Vamos acertar o endpoint aleatório em cima disso, e então fornecemos nossa função familiar de retorno de chamada de naufrágio e rez com os objetos de
resposta de naufrágio e vermelhos . Ótimo para ter certeza de que esta mensagem de endpoint aleatória sob Fortunes Works terá um registro de ponto
causal de solicitar fortuna aleatória e verificar se ele realmente se conecta em nosso navegador. Então é um registro constante solicitando fortuna aleatória. Agora, se você não tem o servidor funcionando, vá em frente e ligue-o. Lembre-se de que o script de desenvolvimento de execução do NPM criará uma versão recarregável ao vivo do aplicativo sem DemonT. E com isso, vamos conferir no nosso navegador. Então desta vez sorte corte aleatório. Agora não teremos nada de volta ainda porque não respondemos. Mas se você olhar em nossa linha de comando de desenvolvimento, nós vemos pedindo aluguel uma fortuna de fato, registros para a taxa do conselho. Agora podemos escrever o código para realmente enviar de volta ou objeto sorte aleatório. First Up tornou-se acesso a nossa fortuna aleatória usando um índice aleatório para um objeto fortuna
nesta matriz de fortunas. Para obter este índice aleatório, usamos a matemática em função aleatória retorna um número decimal de 0 a 1, por isso é um índice aleatório constante é igual a matemático ponto aleatório, que nos dará um número aleatório de 0 a 1. Agora, multiplicando este número pelo comprimento de nossas fortunas, AP I devemos obter algo acima de zero até o comprimento das fortunas AP I Então vamos multiplicá-lo pelo comprimento que temos em nossas fortunas. Um p i grande. Agora temos um índice aleatório. Agora Mathare aleatório retorna um número decimal, então multiplicá-lo pelo nosso comprimento ainda será um número decimal. Então, a fim de torná-lo um bom número redondo, você pode nivelar todo este resultado com a função de chão de ponto matemático. E, a
propósito, matemática e matemática, nossas variáveis globais dentro de nota e JavaScript Great. Agora temos um índice aleatório. Então vamos acessar a fortuna aleatória usando este índice para obter um objeto das fortunas para Ray em que irá armazenar a fortuna aleatória em uma constante chamada nossa fortuna. Então vamos fazer uma nova constante chamada nossa sorte acessar a matriz fortunes e, em seguida, passar nosso índice aleatório finalmente vai responder com isso. Nosso objeto da sorte como Jason para o pedido Self responderá com pontos vermelhos Jason de passagem são fortuna aleatória. Como você diz isso. Experimente nossas fortunas recém revisadas aleatoriamente e apontar no navegador, e como fazemos isso, observe que recebemos uma fortuna aleatória. Vamos tentar de novo. Este teve a ideia de um. Este tem a idéia de 31 Vamos chegar lá é muito grande. Como você pode ver em vários pedidos de uma fortuna aleatória, nós obtemos todos os três de nossos diferentes objetos da sorte de nosso arquivo de dados. Eventualmente bom antes de seguir em frente. Há algumas melhorias de código que podemos fazer, embora para isso obter fortunas barra barra função aleatória. Normalmente não é tão útil para morrer de fome código em uma variável temporária se ele é usado apenas uma vez , então ambos são índice aleatório e nosso objeto fortuna são usados apenas uma vez para que possamos em linha tudo colocando o acesso da fortuna Rendon tudo dentro do método de rez dot Jason. Então, primeiro, podemos tirar todo esse índice aleatório e colocá-lo dentro de nossas fortunas ou um E lá
estamos nós . Vamos acessar uma fortuna aleatória, e agora não precisamos mais disso. Nossa fortuna enfraquecer, pegar tudo isso e passar como parâmetro para RJ e excluir isso nossa fortuna. Nós também podemos tirar este registro confiante, e de repente temos uma função de linha agradável. Ao salvar essa cabeça para trás, vamos testar novamente o endpoint. E, de
fato, ainda funciona como de costume. Ótimo. Vamos criar outro endpoint get conveniente para selecionar objetos da fortuna. Um padrão que você pode ver com muitos outros olhos E P é a capacidade de acessar um item de dados usando sua i. D. Uma estratégia para solicitar esses dados é usar uma rota aninhada como um parâmetro em sua solicitação, significa que se quisermos o objeto com a identificação de alguém dentro de fortunas fará um pedido para a sorte cortar um. Da mesma forma, para o objeto com a idéia de três, devemos fazer um pedido de fortunas cortar três. Muito bem, vamos adicionar esta capacidade com o método get que também tem uma rota necid para fortunas. Então eu vou adicionar e você começa a função com a nossa chamada habitual de volta com um
objeto de solicitação e resposta representado por naufrágio e raise. Então aqui está nossa função de retorno de chamada e nosso endpoint. E agora, para o parâmetro real em S e rota, podemos usar um tipo especial de sintaxe que se expressa para passeios para nós. Vamos usar dois pontos para significar que esta rota necid deve ser passada como um parâmetro em um objeto
request. Então, depois do cólon ou melhor, depois das fortunas, temos uma barra e então temos o nosso cólon. E então especificamos que agora vamos verificar se há um I D representado por um número. Incrível. Agora que temos este ponto final, vamos considerar os efeitos de ir para fortuna barra um ou sorte barra dois sob servidor Agora,
quando isso acontece, quando isso acontece, passar o valor de um dentro do objeto de solicitação de arte sob o I D variável, declaramos em uma força de rota. Esses parâmetros dentro da rota serão armazenados em um objeto Paramus sob o objeto de naufrágio . Então vamos amar constantemente esse pedido. Pare o objeto do Haram e confira. É chamado de adulto log naufrágio ponto Krems e ver o que ele tem enquanto dizemos isso vamos
visitar a sorte 1. Agora, enquanto fazemos isso, observe que temos um objeto em nosso ambiente de desenvolvimento. Ou seja, eu apontava para um psiquiatra um Nice. Agora que vemos esse registro, sabemos que podemos usá-lo. Então vamos escrever o código para encontrar a fortuna apropriada por sua i d e responder com ele como Jason Para encontrar esta fortuna, usamos função auxiliar em um raise chamado encontrar. Então vamos usar fortunes dot find and find takes em uma função de callback que nos permite
olhar para cada item individualmente dentro da matriz, armazenando-o dentro do primeiro parâmetro de nosso callback. Então nós temos uma boa chamada de volta, e agora nós vamos operar em cada fortuna individualmente e representado como f Agora, dentro deste parâmetro F que representará um objeto da sorte individual, nós podemos retornar o primeiro objeto da sorte que nós ver quem eu d corresponde ao I d. Temos armazenado dentro de nossas operações de solicitação. Então vamos olhar para cada F i d e, em seguida, verificar se é igual ao nosso pedido. ponto de Dup Haram i d. Você também pode tirar este ponto de cultura por muito tempo agora notar o uso de duplas iguais em vez triplos iguais. Aqui, o operador de comparação tropical é igual em javascript faz uma verificação de tipo adicional que não
funcionaria. No nosso caso, nossa loja Jason Data, usa números. O que são passados I d parâmetro é representado um encolhimento, modo que a verificação de igual triplo retornaria false porque os tipos não corresponderiam. No entanto, o operador de comparação dupla igual não faz essa verificação de tipo extra e pode ver uma string um como equivalente ao número Tipo um em JavaScript. Tudo bem. Com este código em vigor, devemos agora ter a fortuna encontrada. Como find retorna apenas um objeto, aquele que ele encontra primeiro. Como resultado, vamos responder com esses dados em geral como nosso Jason. Então vamos desovar com esse ponto da sorte como Jason. Tudo bem, legal. Vamos revisitar o A P I em seu sutiã. Xena, podemos verificar se há 14 barra 1, e lá está barra 1. Que tal dois? Sim. Temos dois e depois três. Excelente. Estamos recebendo todos os três objetos da sorte enquanto você os visita por uma rota necida, amigo. Ótimo. Agora adicionamos a poderosos métodos get para nossa coleção de interações dentro deste AP I
fortunas com o endpoint aleatório e a rota Necid. Lembro-me profundamente, vamos seguir em frente e explorar os outros 82 métodos e descobrir como adicionar atualizar os dados
no aplicativo para tornar isso um p eu ainda mais poderoso
17. Método de poste: Agora que temos alguns métodos permite pegar dados de nossas fortunas ap I Vamos interagir com nosso FBI de uma nova maneira. Desta vez, vamos dar ao usuário a capacidade de atualizar todas as costas e dados e dar-lhe algumas novas fortunas para dar um P. Eu sabia dados. Faremos um pedido pós. Uma solicitação de post é um método relacionado ao método http get requests que nos permite enviar os dados isom AP através de um objeto de solicitação. Agora, vamos considerar a forma desses dados recebidos. Os dados recebidos virão na forma de Jason para facilitar a interação com ele. No entanto, para que nenhum Duchy s lide com este Jason Data de entrada, precisaremos de alguma maneira de entender e analisar os dados de forma inteligente. Este é o lugar onde o conceito de análise de middleware entra para dados de entrada para o servidor. Em termos de ciência da computação, middleware é um termo geral que muitas vezes pode significar a ponte entre aplicativos e dados para estabelecer uma forma comum de comunicação no nosso caso, o meio onde nos permitirá separar. Jason, Felizmente, podemos obter este middleware bastante rapidamente, mas instalar um módulo que cuida de configurar o meio Onde para nós em expresso disse sua linha de comando. Vá em frente e pare o roteiro. Deixe-me ampliar isso. E agora vamos insultar um novo módulo chamado Partes do Corpo. Então vamos usar o NPM I comando. E essa é a parte do corpo, senhor. E então vamos usar a bandeira de dizer, já que queríamos como uma dependência do nosso ambiente de produção e desenvolvimento. Então, agora que temos isso instalado, podemos usá-lo dentro de nossa queda ab. Então, depois de expressar a sua instalação, mas sim exigir este módulo e usar carcaça de camelo para o nome constante real. Exigir através de seu sabor traço, partes
do corpo, er ,
módulo, localização e cada hábito. Ótimo. Agora podemos dizer ao nosso aplicativo para usar as partes do corpo ou função de middleware Jason que agora está armazenado dentro da parte do corpo, senhor, neste aplicativo. Então, vamos dizer em ir em frente e usar usando a função de uso. O corpo Parsa pensou que Jason função middleware. Isso deve cuidar de nos permitir receber e partes dados Jason através de
solicitações recebidas , objetos. Vamos passar para a criação da busca real cartaz para fazer novas fortunas dentro do nosso FBI para criar este método post, usamos a mesma sintaxe como ou obter método. Exceto que desta vez vai chamar ponto post em nossa aplicação expressa para o nosso parâmetro vai postar para o endpoint fortunes. Sim, você pode ter o mesmo caminho ou endpoint que o método get. Embora eles compartilhem o mesmo endpoint, eles serão distinguidos um do outro através do tipo de método que ele está interagindo com esse ponto final. Então, afinal de contas, sempre fica, vamos ter um post para as fortunas e ponto. E então nós fornecemos o pedido familiar e função de chamada de retorno parâmetro de resposta os incêndios Uma vez que atingimos o ponto final fortunes. Agora vamos realmente querer olhar para o objeto de solicitação. Desta vez, este objeto de solicitação nos dará um corpo de dados relacionados ao que o usuário envia em suas solicitações de
postagem para o A P I. Então, antes de começarmos a interagir com ele, vamos fazer um log de pontos cônsul do corpo da solicitação para ver o que parece. Então é constante log neste objeto
reprimido, o corpo, e agora certifique-se de ter seu servidor em execução em uma janela de linha de comando. Então, se você parou. Vá em frente e volte para o NPM. Executar morte, e como você faz isso, a porta de desenvolvimento ao vivo deve iniciar. Agora chegamos à questão de testar este post no ponto. Desta vez, não temos a capacidade imediata de visitar seu URL em uma guia do navegador para fazer uma solicitação de obtenção
automática. Post Request são geralmente realizadas através de código nos bastidores em uma frente e aplicativo dentro do código quando você usá-lo na Web, não em vez de codificar uma frente inteira e aplicativo para executar esta solicitação de post, podemos usar um comando para especificar uma crista de pôster com o Comando Curl. Então vamos para uma nova guia em nossa linha de comando para que você possa pressionar o comando t dentro do terminal. E agora vamos fazer uma nova postagem oprimida usando a linha de comando. Vamos fazer o que é chamado de pedido de curl. Vamos usar também a opção capital Dash H para especificar um cabeçalho para este cabeçalho Girl Quest ajuda o servidor dos EUA a identificar que tipo de dados está vindo através do cabeçalho Quest com o conteúdo capital
chave Dash Capital tipo na barra Value Application Jason identificará os próximos dados como Jason. Então fazemos uma onda. Então, que é curl e, em seguida, traço Capital H e irá fornecer uma cadeia de caracteres que o tipo constante é aplicação barra Jason. Em seguida, usaremos a opção Dash X para especificar que tipo de solicitações estavam sendo feitas. Neste caso, é um pedido pós. Então Dash Capital ex Post, então com a opção D, podemos começar a especificar alguns dados para isso. Então, após o ex post de Dash, podemos especificar D, e então podemos fornecer um dado em um psiquiatra com aspas simples que representa o Jason que
queremos enviar. Então vamos enviar talvez algo que represente uma fortuna. E lembre-se que queremos que isso seja no encolhimento, mas representará Jason. Então, tem um par de chaves aí dentro, a nossa primeira chave é a mensagem para isso, Jason. A mensagem será olá também lhe dará um número de sorte cerca de cinco. E desta vez o animal espiritual será cão assim e, finalmente, com euro especificado para bater em geral para este pedido post. Então, vamos bater http barra como host local barra barra host local e importante 3000
fortunas barra . Tudo bem, através de tudo isso, espero que você possa ver. Então, no final ali, são 80 derrotas. Colon slash ash, anfitrião
local Colin 2000 Slash fortunes. Vamos executá-lo. E à medida que fazemos isso, obtemos um número inesperado. Vocês provavelmente viram que eu esqueci de colocar um cólon depois do número da sorte. Por sorte, recebemos uma boa mensagem aérea. E desta vez, se voltarmos ao nosso desenvolvimento, Cônsul, aqui descobrimos que o registro é uma mensagem. Olá? Sorte número cinco cão Spirit Animal. Para uma boa medida, podemos fazer um pedido de post mais uma vez. E à medida que fazemos isso novamente, recebemos o mesmo registro de mensagem para o nosso cônsul porque dentro do nosso manipulador de post ou
ponto de concerto registrando o corpo da solicitação de entrada. Ótimo. Encontramos nosso registro de dados falsos na linha de comando. Agora estamos prontos para escrever algum código que usa esses dados para adicionar a este arquivo de
fortunas Jason . Primeiro, a
fim de adicionar às nossas fortunas, arquivo de dados precisará criar um novo objeto da sorte que podemos adicionar à nossa matriz de fortunas no próprio arquivo Jason. Felizmente, temos três dos quatro dados que precisamos para uma fortuna do nosso corpo. Então é usado em seis sintaxe de destruição para declarar uma mensagem. Número da sorte na variável animal espírito com os dados do objeto do nosso corpo pedido. Então vamos pegar nossa mensagem,
nosso número da sorte, nosso animal espiritual, e fazer essas variáveis locais e pegar as chaves equivalentes do nosso objeto de busca. Ótimo. Agora é encontrar um novo objeto da sorte chamado fortuna. Com esses dados carregados, vamos fazer um novo objeto Fortune armazenado em um objeto Fortune no passado em nossa mensagem, nosso número de sorte em um animal espiritual que faria as mesmas chaves e valores que recebemos de um corpo de solicitação. Também usamos abreviação de música, uma vez que nossas teclas e valores são idênticos para que possamos encurtá-la. Agora precisamos fazer um campo I D para completar este objeto da sorte. Então vamos fazer uma variável dinâmica por enquanto, chamada I D logo no início. Então aqui nós temos o nosso i d, e nós não vamos dar-lhe um dado ainda ou melhor, um valor. No entanto, agora é um sinal de valor para este número. O que deveria ser? Precisamos de uma
identidadenova e
única identidade que ainda não esteja sendo usada dentro da matriz. Não vai. O que podemos usar? Uma estratégia para garantir um número exclusivo é encontrar o número máximo já usado dentro do array. E então o novo I D irá incrementar esse
número de
identificaçãomáxima identificação . Isso sempre deve retornar um número exclusivo. Então vamos pegar a matriz de idéias ou melhor, a matriz de I DS e armazená-lo dentro de uma constante chamada ID da fortuna das fortunas são ray. Usando o método map de JavaScript, o método mat retorna uma nova matriz com base nos anteriores. Em alguns dados filtrados, nossa função de retorno retorna os novos objetos que queremos, que neste caso será cada número ID para cada item nas fortunas para Ray. Então, logo depois de pegar Oliver Data, vamos pegar uma nova matriz da fortuna I ds e, em seguida, chamar fortunes dot que o que Matt faz nos
permite retornar um objeto para cada um que temos dentro de nosso array original fortunes baseado fora de uma condição. Então agora vamos ter a UNR um dos IDS baseados em cada objeto da sorte dentro de nossas fortunas
originais estão certos. Ótimo. Agora temos cada um desses I ds fortuna Agora podemos atribuir a nossa variável a d para o número
máximo desta matriz de idéias ou melhor, I ds. Felizmente, JavaScript vem a função max no objeto matemático construído. Isso pode levar em qualquer número de argumentos. Então, outro bom seis pedaço de sintaxe é um operador de propagação que nos permitirá especificar cada uma das idéias ou melhor, cada um dos I ds como um parâmetro individual para a função max, literalmente espalhando-o. Então vamos dizer que o I D vai ser igual a um ponto matemático máximo de propagação em cada uma
dessas fortunas que eu DS homem I ds ou idéias meio difíceis de pronunciar de qualquer maneira, agora há um caso de vantagem a considerar. Se a matriz Fortune I DS for sempre zero, a função max retornará negativa. Infinito negativo. Infinity faz sentido como um padrão para a função max porque é o mínimo absoluto e qualquer valor irá excedê-lo como um máximo. Então é uma ótima implementação. Mas este caso de borda pode parecer impossível se você sempre tiver fortunas, mas considere que é possível começar no APP com dados nas fortunas Marais. Ou talvez ele implementou a capacidade de apagar fortunas para que pudéssemos, teoricamente, atingir esse infinito
negativo i d. Então é viável que todas as nossas fortunas possam desaparecer dentro do APP. Então, felizmente, podemos lidar com isso com uma volta Cada expressão se descobrirmos que a sorte que eu D está vazia vai definir o I D para zero. Caso contrário, usaremos nossa função max para retornar o ponto matemático max. Então, em nosso I d. E vamos colocar cada um desses em novas linhas para manter isso organizado. Então aqui estamos nós. Está tudo bem. Também podemos apagar essas marcas vermelhas, o que significa que há espaços à direita. Então agora podemos adicionar nossa vez cada expressão. Vamos verificar se o comprimento do ponto fortunas i ds, vamos dizer, é maior que zero. Se assim for, vamos usar a nossa matemática regular até a função máxima caso contrário, em dois pontos, podemos usar o zero agora aviso. Expressão de advogado é muito parecido com uma declaração se, verificamos uma condição. Então, se essa condição passar, então vamos para a parte verdadeira antes do cólon, que é a matemática para fora, Max. Caso contrário, vamos para a seção falsa, que é este zero aqui. Ótimo. Agora podemos acrescentar a isso ao nosso objeto da sorte. Mas depois de tudo isso, vamos Teoh incrementá-lo em um. Assim, temos sempre um número único. Ótimo. Estamos quase lá em que temos nosso objeto da sorte criado. Precisamos atualizar nossa taxa geral de fortunas com o novo objeto. Vamos declarar sub-taxa chamada novas fortunas. Então vamos defini-la igual ao nosso conjunto geral de fortunas contaminado com o nosso novo objeto. Então vamos dizer que vamos ter uma nova constante de fortunas agora e então vamos vir gato , nosso novo objeto da sorte que acabamos de criar Grande. Finalmente, vamos enviar de volta esses dados fortunes como Jason com o objeto de resposta geral que temos de nossa chamada original de volta. Então, vamos renderizar nossas novas fortunas enquanto você diz isso. Vamos em frente e testar novamente um pedido de post através desta onda. Então, Gwen, faça o mesmo pedido de curl. Vocês devem ter notado que eu adicionei extra. Isso é por aqui, e provavelmente estamos dizendo não, não adicione. Isso é assim como nós salvamos isso, vamos em frente e reexecutar são pedido de curl mais uma vez e como nós fazemos isso é um pouco confuso, mas note que nós temos todos os dados sobre nossas fortunas renderização em nossa matriz aqui. Então recebemos o nosso novo, cuja mensagem é “Olá”. O número da sorte é cinco. E o animal espiritual é um cão, que é o pedido de corvo que acabamos de criar. Ótimo. Então nossas novas fortunas foram criadas. Incrível. Agora observe que nossos novos dados, no entanto, não estão aqui. Se formos para a sorte, ponto Jason. Então, se clicarmos infeliz sobre Jason, Infelizmente, nossos novos dados não estão lá. Bem, vamos precisar de uma forma de escrever os nossos novos dados sempre que usarmos esta missão de cartazes. Então, de fato, mesmo que estejamos respondendo com nossa nova matriz de fortunas, ainda
temos que atualizar o arquivo real que contém nossa fonte global de dados para todas as fortunas. Então nós queremos obter pedidos subsequentes para poder carregar essas fortunas. Então o que vamos fazer é necessário o módulo FS no GS,
este fs ou módulo de sistema de arquivos nos permite executar operações de arquivo em nota. Portanto, é necessário, na melhor das hipóteses, no topo do nosso código. Então acima expressar desta vez, vamos obter no melhor e exigir, na melhor das hipóteses, o módulo no objeto inicial chamado neste, em
seguida, o módulo FX tem um bom método de arquivo certo que permitirá que ele substitua esta fortunas ponto Jason falha com nossos novos dados para o seu primeiro parâmetro, ele leva um caminho eo nome do arquivo dos dados que queremos escrever para você para o segundo parâmetro. Nós fornecemos uma força que representa o que queremos escrever para o arquivo. Felizmente, nós tivemos a corda Jason ponto se eu como construído em método que irá converter nossa nova
matriz fortunas em uma força Jason. Então está certo nosso arquivo e apontar para os dados, cortar fortunas, ponto Jason arquivo e substituí-lo com nossas novas fortunas estratificadas por estupro. Faremos isso antes do nosso Red Dodge, uma música chamada So Logo Antes dos Vermelhos Dotam Jason. Vamos chamar o arquivo “F “não está certo. Vamos olhar para a nossa pasta de dados sorte Jason, e então vamos enviar uma série de novas fortunas e enquanto enviamos este R A P, eu deveria atualizar no nosso Conselho de Desenvolvimento. Agora, finalmente, como parâmetro 1/3 para esta função irá fornecer uma função de retorno de chamada que irá produzir quaisquer erros que a função poderia ter tido por escrito para o arquivo apenas no caso de algo
dar errado . O parâmetro será no objeto ar para representar. Os herdeiros também confiam em registrar o ar se a função da válvula certa não conseguir encontrar o arquivo. Por exemplo, notas
nobres chamam essa chamada que a função foi fornecida com e passou o
objeto aéreo gerado que ele cria. Então aqui dentro vamos ter um objeto aéreo. E se o encontrarmos, vamos ligar para o Sadat. Registre todo esse objeto aéreo. Tudo bem, vamos salvar isso. E o que essa função de gravação de arquivo carregou. Vamos repetir nosso pedido de postagem agora em nosso segundo tad. E como fazemos isso Yep, temos uma idéia de quatro postados. E então se verificarmos nossas fortunas ponto Jason, ele é estratificado, e a função Sugar five não leva em conta que ele deve olhar recuado e bonito, mas você deve ver que você tem uma idéia para com o mensagem de olá em um animal espiritual fora do Doug. E se fizermos a solicitação de postagem mais uma vez, nossos dados serão recarregados. E aqui temos outro com a ideia de cinco. O animal espiritual é um cão de novo. Ótimo. Nosso ponto fortunas Jason Array atualizou no arquivo. Agora, novamente, signify não toma cuidado para incluir o recuo da carne. Então temos que rolar horizontalmente todo o caminho para ver os novos dados. O que sabemos que o método está funcionando. Vamos seguir em frente e continuar a aprovar este um p I, e adicionar alguns ou pedidos, métodos e casaco.
18. Limpe o método de poste e use o de poste e a poste: Agora que completamos nosso método post, podemos fazer um pouco de limpeza para obter este método um pouco mais apertado usando espaço vertical para seu código de forma mais concisa. Para começar, podemos remover o registro de pontos do cônsul de fortunas e o nosso pedido diz o corpo. Retire este corpo de pedido Cônsul. Não tranque o Next. Podemos colocar toda a criação de seu objeto da sorte dentro da função inventada que o
adiciona à matriz das fortunas que temos. Uma convenção de revestimento que é popular é colocar chaves em sua própria linha se o número de chaves fica particularmente longo, o que já estava fazendo com esta fortuna. Então ele pegou este todo um par de chaves encaracoladas aqui no lugar dentro, e lá nós temos na linha Nice. Isso parece um pouco mais limpo agora, outra conveniência para o desenvolvimento que não necessariamente afeta nosso código, mas
definitivamente melhorará nossas vidas como um desenvolvedor P I está evitando as missões onduladas. Agora, os pedidos
Karl são divertidos e eficientes na linha de comando , no
entanto, podemos usar uma ferramenta gráfica chamada carteiro para fazer pedidos http ordenadamente em um
formato mais legível para nós. Então, se você não instalou post significava já, você pode encontrar o aplicativo de desktop para Mac Windows ou Linux no carteiro dot com barra aps. Então é olhar para cima carteiro em, por exemplo, Vamos ampliar sobre isso e geralmente o segundo link ou 1º 1 é aplicativo de tubulação carteiro. Então vá em frente e clique nisso, e você vai querer baixar o da plataforma relevante e instalá-lo para que vá em frente e baixe o para Max, já que esse é o sistema. Agora, eu vou ir em frente e abrir este arquivo zip aqui, então vá em frente e abrir foi feito. Então, uma vez que você tenha o carteiro instalado, ele deve estar em sua pasta de downloads. Depois de abrir o arquivo ZIP, você pode movê-lo para a pasta Aplicativos. Eu sei o que é nas aplicações. Você pode usar o Spotlight para ativar o carteiro, e uma vez que ele é lançado, você deve obter uma janela que parece muito semelhante a esta. Vai levar um pouco de carga no dedo do pé agora. Uma vez que você está dentro, você pode ter que criar uma conta para usar o carteiro, então vá em frente e faça isso. Mas depois disso, você deve obter uma página em branco como tão pronto para usá-lo. Por enquanto, não
é necessário fazer uma conta, mas é conveniente se você quiser manter um histórico de solicitações http com o carteiro, que seria bom enquanto você está desenvolvendo. Tudo bem. Outra coisa é certeza que você tem suas fortunas. AP I executando no conselho de desenvolvimento e ouvindo na porta 3000 que vamos tentar reconstruir uma solicitação get para o endpoint fortunes através do carteiro, digitando o nome do host local somente. Fique assim nós vamos para http barra barra host local. Desta vez vamos olhar para o Porto 3000 e estamos tentando obter nossa fortuna geral e vamos ver o que o carteiro faz para nós. Então, uma vez que você faz este pedido get, nós encontramos todos os nossos objetos da sorte listados através do nosso pedido get geral. Uma vez que você clicar, envie incrível. Nossos dados do Jason são retornados para nós em uma saída bem recuada e colorida. Ótimo. Agora, que tal fazer uma busca de cartazes? Então é abrir um novo carteiro tad e selecione Post. Vamos inserir o mesmo seu l que temos para as nossas fortunas no ponto, uma
vez que é o mesmo que temos para o nosso endpoint post e, em seguida, nós também queremos fazer mais configuração para este. Nós vamos para o campo de cabeçalhos em vez do campo de corpo e selecionar raw, e então vamos selecionar Application Slash e Jason, vez que esse é o tipo de dados que estamos enviando e notar que uma vez que selecionamos Jason barra aplicações durar Jason em seu campo cabeçalhos, nós automaticamente obter tipo de conteúdo e aplicativo barra Jason, Grande. E agora podemos inserir alguns dados do Jason dentro da parte do corpo desta seção aqui. Então vamos em frente e fazer uma chave encaracolada geral. Vamos fazer novos dados da sorte. Então vamos ter uma chave de mensagem. E que tal nossa mensagem é que o sucesso espera por você, espera por você, e então vamos precisar de um número da sorte de vez em quando. São 15 e então teremos um animal espiritual também. E que tal girafa? Ótimo. Vamos enviar o pedido com esse grande botão de envio agora. E à medida que o fazemos, obtemos a resposta. E se
rolarmos para baixo, vemos isso no fundo. Vemos nosso novo objeto carregado também. Incrível. Agora tínhamos ferramentas de carteiro à sua disposição. Então, temos uma maneira mais rápida do que fazer onda quest para fazer nosso post personalizado e outros
pedidos não obter . Agora esta última parte da lição é opcional. Não vamos adicionar novo comportamento, mas explorar uma característica elegante sobre nota você pode estar se perguntando se você está postando esses dados para esta fortuna. Object Lord, Obter método agora automaticamente obter a nova taxa de fortunas. Vamos usar o carteiro para fazer esse método. Então, como nós fazemos, eles estão no fundo. Recebemos nossos dados mais recentes. Será que isso parece estranho que estavam recebendo nossa fortuna mais recentemente postada do Post Request? Afinal, se você olhar bem para o código dela, exigimos nossos dados de fortunas no início do arquivo, e então nosso método get está respondendo com esses dados de fortunas no formato Jason. Aquele Onley não deveria conter a matriz inicial de fortunas já que exigia no início? Bem, isso é um grande três, mas vamos explorar como nota é Spartan para atualizar este global ou taxa de fortunas, mesmo que não estejamos explicitamente dizendo que fortunas é igual a outra coisa, alterando seu código postal. Primeiro, pode
ser tentador pensar que a função do gato doce modifica as fortunas estão certas. Mas a função gato JavaScript retorna. Uma matriz inteiramente nova de dados armazenados dentro deste novo objeto fortunes. Agora, novamente, ele não modifica a matriz original. E então a questão se torna, como é que a nossa gama global de fortunas é atualizada? Ainda assim, a resposta reside no fato de que quando escrevemos para o arquivo do ponto fortunas Jason aqui notem inteligente o suficiente para reiniciar nosso aplicativo aqui, já que um dos módulos adquiridos mudou, que neste O caso é o nosso módulo de destino Jason aqui a partir de dados barra fortunas. Vamos provar isso fazendo um registro confidente antes antes de exigir nossos dados da sorte para as exibições, uma mensagem que estamos exigindo que os dados da sorte. Então vamos fazer um registro constante que diz, exigindo fortunas, dados e como fazemos isso em um aviso de segurança que estamos recebendo ouvindo no Porto 3000 e exigindo fortuna Zita. Então agora de volta ao Postman, vamos refazer nosso pedido de postagem. Então, na guia post, vá em frente e apenas re clique no botão enviar. Devemos obter uma fortuna sete agora que se parece com o 61 e não em nosso
servidor de desenvolvimento percebeu que todo o servidor recomeçou novamente. Estamos recebendo dados que exigem fortunas e que estamos ouvindo no Porto 3000 Nice. Então, na verdade, nós reiniciamos todo o aplicativo de servidor de nó de back-end porque nós escrevemos em um de nossos módulos. Ou melhor, um de nossos módulos foi atualizado como um arquivo. Então é para se livrar desse amor confidente. Agora não precisamos disso. E agora nós mostramos que como correr para um módulo traseiro iniciar nossa aplicação real, o que é conveniente quando estamos exigindo em modelos globais. Eles dependem disso e você tem funções ainda usando isso. Então, com isso, vamos seguir em frente e adicionar alguns métodos finais AP I a esta sorte um P I.
19. Como atualizar o método de colocação: Vamos dar aos nossos usuários A P I a capacidade de editar objetos da sorte, significa que se eles querem mudar antes de enviar mensagem, número da
sorte e ou animal espiritual terá um método específico para fazê-lo. Para fazer este método irá usar outro tipo de solicitações http Método chamado Put put é este Inglês de Post Post é usado para criar novos objetos enquanto put é usado para atualizar e substituir os existentes. Tudo bem, vamos pensar sobre como este método put será projetado. São colocados. Método vai olhar como uma combinação do nosso método get com base na sub-rota I. D eo método post que temos em nosso post. Então, poderemos obter a fortuna específica para atualizar através de seu i. D. sobre os parâmetros de solicitação através de um parâmetro de rota necid. E então descobriremos como atualizar seus dados. Usando os valores passados no corpo da solicitação, como tal, criará um método put em nossa
aplicação expressa com o i D. Como um parâmetro em cima das fortunas, Rap também fornecerá nossa função de retorno expresso usual com o pedido e objeto de resposta. Sente-se no nosso código. Vamos fazer uma nova função chamada Apt Output. Em seguida, vamos fornecer um encolhimento com uma rota de parâmetro aninhado de I D. Em seguida, vamos fornecer uma função de retorno com uma solicitação e objeto de resposta. Eles iam pegar nosso I D do objeto Pais pedido. Então vamos pegar o I d. Usando destruições em impostos, vamos fazer uma cópia olhar de I D. Nós vamos pegar o que vai ser armazenado em nossos pais ponto pedido, e então nós vamos também pegar a mensagem Número da sorte e espírito provocação animal de um corpo de solicitação e declarou-os como constantes de aparência usando a sintaxe estruturante também. Então vamos pegar a mensagem, o número da sorte e o animal espiritual do corpo que está ao nosso pedido. Ótima. Outra. Nós temos o nosso i d da fortuna através do pedido Haram, bem como os nossos valores corporais para
atualizar a partir do corpo pedido. Vamos usar esses dados para modificar nossas fortunas. Dados Ap I. Primeiro, vamos encontrar nossa fortuna para atualizar através de seu i d. Usando a função de busca de script de trabalho. Então vamos dizer que nossa velha fortuna é uma fortuna que não é achada, e então a encontramos. Mas olhando através de cada um que eu d e, em seguida, passando o que corresponde às nossas condições que o F que representa uma fortuna individual que estamos encontrando sobre, é I d combina com a idéia de que estamos recebendo através de um pedido de EMS, e, novamente, estamos usando iguais duplos. Neste caso, desde que o i D que é passado através da solicitação. França é um encolhimento, mas a idéia é que temos dentro de nossas fortunas são números, então não queremos fazer tipo extra Check com um triplo igual. Só queremos um cheque normal sem o tipo de cheque. Ótima. Agora que temos nossa velha fortuna para repetir, esta velha fortuna agora é uma referência ao nosso objeto original da sorte porque encontrar retorna uma referência, não a original. Agora, vez que é uma referência, isso basicamente representa o objeto original nos dados, significa que podemos editar suas chaves para ter novos valores e ter que se tornaram os novos dados na matriz
original. Então vamos atualizar a mensagem da sorte e substituí-la por uma nova que estamos recebendo do corpo
do pedido. Está sob a velha fortuna. Vamos olhar para a mensagem e atualizar para a nossa variável de mensagem local. Da mesma forma, para o número da sorte, vamos atualizá-lo para o nosso número da sorte local. E finalmente, para o animal espiritual atualize o animal espiritual para o local. Ótima. Agora sabemos a partir do nosso método post anterior que podemos atualizar nosso
arquivo de ponto fortunas real Jason para atualizar nossos dados gerais fortunes e a variável global. Então vamos adotar uma abordagem semelhante de escrever para o nosso arquivo no local de dados, indo para o ponto da sorte Jason, e então vamos enviar uma versão adaptada do nosso novo objeto da sorte. E novamente, podemos usar fortunas desta vez, já que aqui foram atualizando a referência original para os dados
originais. Então não temos uma loja em algo como novas fortunas por aqui. E, em seguida, aqui nós fornecemos nossa função de retorno de chamada como de costume no caso de obter um ar. Então, vamos guardar isso. E com isso, estamos quase prontos para testar o método no Postman. Nós só temos que enviar de volta nossos novos dados que serão armazenados dentro do objeto fortunes. Com isso,
estamos prontos para testar o método no Carteiro. Com isso, Então vamos em frente e abrir um carteiro. Vamos abrir uma nova guia dentro dele desta vez irá selecionar o método put novamente. Vamos adicionar algum corpo com dados brutos. Então vamos pegar as fortunas e apontar dentro do nosso posto. Mas desta vez, vamos atualizar a Fortune número quatro aqui. Vamos dar uma nova mensagem. E, novamente, queremos selecionar Jason Applications último Jason. E depois queremos a nossa mensagem aqui. Que tal o amor virá em breve. Que esperançoso, então o número da sorte. Que tal 11 e depois o animal espiritual desta vez? Shelvey Zebra. Então, que tal zebra? E você pode colocar todos os valores que quiser. Então, com ele para baixo, certifique-se de que você tem um número para o parâmetro de base de aninhamento que você selecionou Jason. Aplicação barra Jason, como um de seu corpo deve fazer um cabeçalho de aplicação apertado constante. Jason automaticamente. Então, com isso, vamos em frente e clicar em enviar, e à medida que fazemos isso obtemos uma resposta em nossos dados. E olha que o número quatro ou melhor, eu d para o nível dele vem em breve. O número da sorte é 11 e zebra arrefecer nossas atualizações de objeto com seu novo método put. E se enviarmos apenas dados parciais? Então vamos tentar remover nosso animal espiritual. E que tal atualizar o número da sorte para você? 16? Vamos ver se a mensagem, ou melhor, apenas um número de sorte atualiza. Mas o que acontece com o animal espiritual no número quatro e o animal espiritual em nossos
dados de objeto desaparece completamente. Isto é porque como Spirit Animal não existe dentro de um corpo de pedido de venda, agora será indefinido no nosso método local aqui. Agora, felizmente, podemos conseguir uma atualização parcial usando instruções if na frente dessas atualizações, significa que podemos colocar uma proteção contra atualizar esses dados para um pedaço de dados indefinido se
não for originalmente definido. Então vamos dizer se é Onley. Se houver uma mensagem, vamos atualizar a mensagem. Da mesma forma, Onley. Se houver um número da sorte, vamos atualizar o número da sorte. E, finalmente, só se houver um animal espiritual. Nós vamos fazer aquela atualização do animal espiritual. Agora, enquanto guardamos isso, vamos repetir isso mais uma vez. Vamos devolvê-lo o seu espírito animal de zebra. Assim ele tem alguns dados de animais espirituais para trabalhar. Então, vamos enviar isto. O put deve atualizar o 4º 1 e novamente tem espírito animal. Mas e se agora atualizarmos o número da sorte? Será que o número da sorte mudou Muito indefinido. Então vamos enviar este cheque a resposta. E agora, desta vez, mesmo que o número de sorte de não foi enviado, ele não atualiza. E lá temos, apenas parcialmente atualizando nossos campos. Ótima. Agora,
antes de seguirmos em frente, há algumas melhorias de código que podemos notar que estamos fazendo exatamente o mesmo
arquivo certo duas vezes. Ajude-nos a sair. Podemos fazer uma função auxiliar neste arquivo Abdel Js que cuida de escrever para as fortunas. Jason, vamos dizer que é certo. Fortunes vai fazer isso acima do nosso método de postagem aqui, então vamos chamá-lo de Const. As fortunas certas, e então vamos definir igual à função de seta. E então, para a função real, vai chamar o método de arquivo inteiro fs dot right substituindo os dados com o nosso parâmetro Jason que vamos adicionar aqui então vamos dar-lhe um Jason Parâmetro, que representa Jason . Que estamos enviando agora foi pegar todo o arquivo da direita do ponto fs e colocá-lo dentro. As fortunas certas provavelmente querem soletrar fortunas certas corretamente também. E ao invés de significar, novas fortunas estavam indo para cadeia. Se eu sou Jason e não o fim deste desde que excluímos nossos esforços ponto direito arquivo chamada bem, temos que substituí-lo com a nossa função auxiliar. E desta vez estamos a passar os nossos novos dados da sorte e, do mesmo modo, aqui. Nós não temos que escrever esta chamada estendida desde que temos um método auxiliar estava certo
as fortunas e, em seguida, enviar em nossos dados fortunas. Como você diz isso. Há atualizações de serviço de desenvolvimento. Agora devemos ser capazes de enviar isto e reescrever. E, em seguida, em um método get, seremos capazes de obter todos os nossos dados ainda com as fortunas atualizadas, vamos em frente e postar um novo para ter certeza de que o post ainda funciona corretamente. Na verdade, temos mais uma oitava fortuna aqui. Se você fizer uma solicitação get, sabemos que ele grava o arquivo. Já que vemos oito agora, excelente. Agora há mais uma mudança que podemos fazer agora, a defecação de código que temos das linhas 49 para 51 sobre atualizar os antigos campos da sua antiga fortuna não é tão ruim, já que há apenas três linhas, no entanto. Imagine se tivéssemos que fazer isso por, digamos, 4 a 5 ou até 10 campos diferentes. Bem, nós poderíamos otimizar isso fazendo uma variedade de nossos chás assim falando matriz de Archies, que é mensagem número da sorte e espírito animal. E então executamos um para cada função em cada uma delas. E então vamos olhar para cada chave individualmente e então vamos verificar. Bem, vamos verificar se esta chave está agora presente dentro do nosso corpo de pedido, assim como este. Se mensagem daqui, então diremos se o pedido que o corpo contém esta chave, então vamos atualizar nossa antiga fortuna. Com aquele T e ST, vai ser igual ao corpo do pedido de acesso àquele chá ali. Então, agora com isso, podemos tirar essas declarações aqui, e na verdade, nós nem precisamos acessar as variáveis locais do nosso corpo de solicitação mais. E como dizemos isso, temos agora uma versão mais concisa que é mais poderosa. Então nós simplesmente precisamos adicionar uma nova chave aqui, a fim de atualizar um novo campo. Se atualizarmos o nosso A P I. Então ele vai verificar no Post Mint se a nossa função para o método put ainda funciona. Então, que tal apagar o espírito? Animal lhe dará um novo número da sorte, , então devemos ver que nosso número da sorte é atualizado para algo como 19, mas zebra não é atualizado. City goto i d. 4 Sim, o Spirit Animal Zebra não foi atualizado, mas ainda temos nosso número de sorte de 19. Incrível. Nós adicionamos totalmente uma capacidade de atualização com um método put em nossas fortunas. Um p I. Vamos seguir em frente e adicionar o último recurso a este servidor AP I.
20. Como excluir o método de Fortunas: para nossa última peça de funcionalidade dará ao usuário A P I a capacidade de excluir fortunas
individuais de um p I para permitir que o usuário especifique uma fortuna específica para excluir. Usamos a mesma estratégia que o nosso get by i d e colocar métodos de atualização. Teremos um
parâmetro i d. sobre a solicitação que usará para especificar o i d que gostaríamos
de remover do nosso bebê. Eu para fazer este pedido de exclusão http que usá-lo método elite do Express. Teremos as fortunas semelhantes e eu terminarei com o pedido e resposta chamada de volta. Então, depois de colocar, teremos nosso novo método de exclusão. Vai estar nas fortunas e no espaço do nome do ponto e então vamos olhar para a
identificação identificação um parâmetro de haste. E aqui está a nossa função de retorno de chamada “naufrágio e aumento” que é acionada quando atingimos este ponto final. Agora que temos isso, eu d. Vamos pensar em como vai apagar o objeto do nosso raio. Uma boa opção é usar o método de filtro em JavaScript, uma corrida o método de filtro irá retornar uma nova matriz com base na condição que colocamos em cada item para que possamos olhar para cada item em nossas fortunas Marais e em Lee retornar itens que passado uma determinada condição com base em seu i d. No nosso caso, é apenas retorno I ds que não coincidem são solicitados. Pedido parâmetro i d. Então primeiro vamos pegar nosso novo i d do objeto de gramas de pontos de destroços no pedido. Um ditado normal que teremos um novo objeto da sorte agora, o que nos permite filtrar o objeto original da sorte. Vamos olhar para cada objeto da sorte individualmente com f parâmetro Olhe para cada um desses objetos do item
F que representa uma fortuna. Vamos olhar para os dados deles e depois vamos dizer Onley, dar-nos novas fortunas para aqueles que não coincidem com a
identificaçãoque
especificamos com os nossos parâmetros de identificação pedido. Ótima. Isto irá criar uma matriz inteiramente nova de itens Onley que não correspondem à nossa solicitação Perimeter I d. Da mesma forma, se ele corresponder ao i d, o método de filtro irá decidir não colocá-lo na nova matriz fortunes. Agora que temos essa nova matriz de dados, é
isso mesmo. As fortunas das nossas fortunas apontam para Jason falta usando o nosso bom método ajudante. Então vamos escrever essas fortunas e passar nossas novas fortunas como um Jason para nossas
fortunas certas . Método finalmente vai responder como novas fortunas com uma resposta de Jason. Então vamos apenas para fora esta funcionalidade no Postman. Primeiro, vamos fazer uma solicitação para ver quais dados realmente temos que ir em frente e enviá-los Agora, uma vez que você tê-lo lá, vá em frente e olhe através dele. Eu notei isso. Bem, podemos apagar qualquer um destes. Mas que tal um que é duplicado? Que tal apagar o número sete? Então é graduado algo assim. Todo o nosso ponto final colocado em aberto em New Tab. Em seguida, especificaremos uma solicitação de exclusão. Um pouco acelerando nosso euro. E, novamente, vamos querer mudar o um por ideia de oito. Então vamos mudar. Isso é um parâmetro para oito. Tudo bem, então uma vez que temos isso, nós realmente não precisamos especificar nenhuma configuração do corpo. É muito parecido com um pedido get onde nós apenas enviá-lo e boom, Aqui vamos nós. Vamos verificar e, em seguida, vamos olhar para a nossa resposta agora rolando um pouco para baixo. Tem seis em sete, mas não tem
identidade
. identidade Que tal fazer o número cinco, ou melhor, cinco ou melhor, seis. Essa é uma duplicata. Então apague seis ou o que quer que você tenha. Você pode ter dados diferentes disponíveis para você, e lá vai de 5 a 7. Incrível. Então não conseguimos encontrar nosso objeto e ele é excluído. E se fizermos um pedido get, nosso original no parâmetro de solicitação get Tad of Postman foi Click send. E lá temos nossa matriz atualizada com nossos objetos excluídos. Objeto incrível deletado com a idéia de seis e oito e uma fortuna são Ray
filtrou para baixo. Com isso, nós completamos nossas fortunas ap I com a capacidade de pegar toda a variedade de fortunas, obtê-las por d, obter aleatoriamente um post uma nova fortuna atualizada e agora excluir completamente um