[Música] fala né Beleza bem-vindo ao nlw Connect bem-vinda ao nlw Connect hoje aqui a gente tá nessa aula zero que é pra gente dar os primeiros passos configurar o nosso ambiente para essas próximas três aulas que vão ter muito código e como eu falei essa primeira aula aqui é pra gente instalar tudo que for necessário na nossa máquina para iniciar o desenvolvimento da nossa aplicação aqui na trilha de node do nlw Connect Então a gente vai instalar o node Vamos criar o nosso projetinho já vamos deixar pronto mas hoje ainda a gente não vai entrar
no desenvolvimento da nossa aplicação Isso vai acontecer na próxima aula tá lembrando que nlw Connect cara se você já participou de algum nlw sabe mas se você nunca participou é um evento muito prático a gente não vai ficar na falação a gente não vai ficar muito na teoria a teoria ela vai estar distribuída durante a apresentação prática a gente vai sair desenvolvendo uma aplicação uma aplicação bem completa aqui o utilizando o node tá e várias outras ferramentas aí do ecossistema node se você já trabalhou com node antes ótimo se você nunca trabalhou com node antes
tudo bem a gente vai desenvolver a aplicação do total zero eu vou te mostrar todas as ferramentas que são necessárias e todos os conceitos que são necessários para você codar essa aplicação é super comum Lembrando aqui independente do sistema operacional cara é super comum você ter problemas na configuração desse ambiente que a gente vai fazer aqui hoje cara isso pode acontecer isso muito provocado muitas vezes por causa que você já tem às vezes um um um sistema operacional que você já tem instalado outras coisas antes você talvez já tentou instalar o node antes já instalou
alguma outra ferramenta e instalou uma versão antiga do node isso pode acontecer por isso sempre conta com a gente todo o time da Rocket eu todos os instrutores da Rocket todas as dezenas de milhares de pessoas que estão participando aqui desse nlw vão estar no discord para te ajudar com qualquer dúvida e a gente já tá na 20ª edição do nlw então assim cara a gente já passou por todos os problemas a gente já viu todos os problemas acontecendo Então não interessa Qual o erro você tá tendo aí um erro muito maluco com as palavras
malucas chama a gente na comunidade que a gente vai ter a solução pode ter certeza segue Esse passo a passo mesmo que você tenha dificuldades vai até o final porque isso aqui é muito importante essa aula aqui ela é essencial para quem é iniciante na tecnologia node Mas mesmo que você não seja iniciante na tecnologia node persegue aqui vai até o final porque talvez eu não te fale alguma coisa aí que você ainda não saiba desse ecosistema eu vou te mostrar as ferramentas diferentes aí tá antes da gente continuar aqui eu já mostrar minha tela
a gente sair instalando tudo que for necessário para essa aula é super importante se você tá chegando aqui nessa trilha de node que você já tenha uma familiaridade com o JavaScript que é a linguagem que roda por baixo do node que você já tenha uma familiaridade com o desenvolvimento web Saiba como é que funciona e uma requisição né de uma de um cliente para um servidor sai como é que funciona isso o que que é uma rota que que é http isso é super importante né se você chegar aqui muito Zerado muito iniciante você vai
Vai Cara Com certeza assim esbarrar com muitos problemas Isso vai ser difícil né de eu conseguir é explicar para você de uma maneira tão básica né então assim se você tá chegando aqui muito iniciante assim a gente tem trilha para iniciante aqui dentro do nlw então talvez dá esse passinho atrás seja a melhor alternativa Aí você faz essas três aulas mais iniciantes depois volta aqui paraa trilha de note Provavelmente por exemplo né então é uma alternativa né E se você já usou node antes cara conhecimento prévio ajuda mas tudo que a gente for fazer aqui
eu vou fazer do zero e é super importante mesmo você já tenha usado node né Você essas primeiras aulas talvez sejam mais simples para você isso é legal mas quem sabe eu não te mostro algumas coisinhas porque a gente sempre vai usar o node da maneira mais atual possível olhando sempre as ferramentas que o mercado tá olhando atualmente Então vão ter várias coisas aqui que talvez você mesmo que já Programe com node vá descobrir aqui nessas aulas do nlw o foco vai ser prática então assim mesmo com dificuldades que você vai vai sim passar vai
até o final e eu quero te ver lá na terceira aula e na Live de encerramento que a gente tem na quinta-feira também e agora bora pra configuração do nosso ambiente aqui eu vou até trocar a câmera e você vai ver que eu já tô aberto aqui o site do node né só procurar nodejs a.org você vai cair no site do node E aí node que que é antes de mais nada node é uma ferramenta que permite a gente executar JavaScript uma linguagem feita para executar dentro do navegador fora do do navegador né o JavaScript
todo mundo sabe aí desde do Internet Explorer 6 lá antigamente sim o Netscape cara JavaScript é a única linguagem que o navegador consegue entender só que o node foi uma ferramenta criada ah lá em 2009 2010 já nem lembro muito bem mas pelo Ryan dll né que permite a gente extrair né a gente pegar esse JavaScript que a gente usava antes só para escrever aplicações para browser né o JavaScript ali para rodar no no front end ali do navegador pra gente fazer qualquer outro tipo de aplicação inclusive aplicações backend né então a gente vai desenvolver
aqui hoje ah a partir dessas próximas aulas uma aplicação backend né um uma API um servidor com node ah mesmo servidor que a gente consegue desenvolver com com PHP com ruby com python que e foram exclusivamente linguagens feitas para backend a gente consegue fazer com node Ah e de uma maneira muito performática muito simples né porque o node ele é muito simples é por isso que tantos iniciantes gostam de utilizar o node principalmente porque tu consegue eh e usar o mesmo JavaScript que tu já tá acostumado ali pra web então assim a gente tem muitas
vantagens para descobrir eh para para discutir mas eu falo sobre isso mais na próxima aula mas aqui para instalar o node qual maneira eu recomendo tá primeiro vê se tu já não tem o node na tua máquina Quem Sabe às vezes tu segui um outro tutorial né então você pode no terminal ali no Windows powershell no ubun ali tem o o terminal também no no Mac tem o terminal nativo né Você pode vir aqui executar um node menos v e ele vai mostrar uma versão né se você se mostrou alguma versão quer dizer que você
já tem o node instalado E aí que que você aí tudo bem tu já pode seguir mas eu preciso que essa versão seja pelo menos aí a versão 18 19 tá assim se for antes disso cara talvez teu node esteja muito desatualizado e a é melhor a gente você seguir aqui comigo o passo a passo pra gente atualizar essa versão do node aí se você não tem o node instalado tranquilo também você vai aí no navegador aqui dentro você vai em version Manager tem várias maneiras de instalar o node tá você pode simplesmente clicar nesse
grande botão download aqui que eu acho que é um erro principalmente se você não é mais iniciante na programação assim iniciante muito básico por clicando aqui nesse botão download tu vai instalar a versão mais atual e ela vai assim inst lá num lugar muito louco do teu computador depois para atualizar essa versão ou remover o node assim é cara é chato se teu node der algum problema é chato tu ficar removendo ele por quê Porque ele instala e de uma maneira Nativa do sistema operacional geralmente a gente prefere instalar o node através de um package
Manager que é uma ferramenta especializada em instalação remoção e atualização de dependências na sua máquina quem usa Linux aí já tá acostumado que tem um package Manager por exemplo né o bunt lá tem o o o APT né então assim o apk também tem tem tem vários package managers o Pacman quem é do Python aí tem o PIP quem é do PHP tem o composer cada cada linguagem cada ambiente tem um package Manager mais famoso né Ah E aí Claro o package Manager vai variar muito dentro da sua eh dentro do sistema opcional que você
tá utilizando mas também além do package Manager tem algo que a gente chama de version Manager que que é o version Manager é muito comum no mercado você trabalhar com projetos que tenham versões diferentes do node e dependências diferentes às vezes por exemplo tem um projeto que eu lembro tem um projeto aqui da Rocket que é mais antigo que a gente precisa ter a versão especificamente 18 do node senão ele não roda porque ele tá usando dependências que só rodam Nessa versão agora tem projetos que eu quero rodar a versão mais atual a 22 a
23 né então assim eu tenho que às vezes ficar alternando entre versão E aí o package Manager né o version Manager ele permite aqui ó por exemplo lá eu tô rodando a versão 22 eu quero rodar agora 23 eu só escrevo aqui né que eu quero é 23 espera um pouquinho ele vai fazer o download da versão e ó já tenho a versão 23 rodando é claro que aqui né Eu só tô te dando um exemplo tu não vai sair executando esses comandos porque eles não vão funcionar no teu terminal sem tu instalar qualquer coisa
né E aí clicando aqui para instalar o node pelo version Manager você vai cair aqui né E aí seleciona o teu sistema operacional por exemplo um Windows da vida né E aí ele recomenda você instalar o FNM né que é o o o o o version Manager do node aí que tá mais famoso famoso pelo menos o recomendado pela documentação do node tá E aí aqui embaixo ele tem o passo a passo que de comando que você vai executar no seu Windows ali dentro do poell rodando como administrador se você tiver o Git instalado na
sua máquina ainda melhor se você nunca usou o o Git Instala aí o Git ele tem aquele Git B né que ele abre um terminalzinho mais legal ali pro Windows né Ah mas isso claro exclusivamente para Windows né se tu tiver no Linux ou no Mac aí é melhor ainda né porque daí é mais fácil terminar o já tá E com tudo que precisa ali Ah e aí você pode selecionar o se sistema operacional instalar aqui cada comando né que não tenha o Cerquilho na frente esses comandos aqui vai executando eles e você vai instalar
o node no final deve ser possível você executar node menos v e ter a versão ali npm Men V que é o node package Manager Ah também instalado né E aí a gente já tem tudo que é preciso né no Linux também aqui ele usa o Curl para instalar ã no Mac também uso Curl né ele pode ver que não muda nada porque tanto o Mac quanto o Mac é ele o Kernel dele né é Unix por baixo dos panos né Igual o Linux Então não é Ã Não vai mudar muito né ã E aí
ISS né com o node instalado outra ferramenta que a gente vai precisar é o visual Studio code tá aqui eu vou est usando o vest code para tudo eu sei que existem vários outros editores tem gente que tá usando já cursor que tem ia integrada e tal Eu recomendo que você assim evite um pouco durante essas aulas Porque por mais que essas ferramentas aceleram muito Muitas vezes se você tá iniciando o aprendizado em uma coisa nova aquil ali aquilo ali vai às vezes pular conhecimentos que são necessários né dores que são necessárias você passar para
dominar aquela ferramenta e depois conseguir tirar mais proveito dessas ferramentas então assim bora usar o vest code comigo eu vou usar o vest code totalmente Zerado inclusive Olha só eu já deixei ele baixado aqui no cantinho ó totalmente Zerado pra gente partir do ponto zero partir juntos né da da da configuração do vest code e veja que eu vou configurar pouquíssimas coisas agora né eu vou aqui no vest code vou em extensões eu vou só instalar duas extensões vou instalar o Omni theme aqui ó que é o tema da Rocket City que eu tô usando
agora criei ele lá em 2018 acho que foi mas a primeira versão bom já não lembro mas eu criei ele faz bastante tempo inclusive hoje é um dos temas mais mais baixados do vest Code com 800 e poucos mil downloads Mas pode usar o tema que você preferir tá e vou instalar também essa extensão chamada simbols né então você procura aqui ó simbols ou procura Omni né Ó simbols que é a extensão que adiciona alguns ícones aqui nos seus arquivos bem legais então clico nela e aí clico aqui em simbols para ativar essa extensão Ok
perfeito agora a gente pode testar se o node tá funcionando na nossa máquina que que eu vou fazer aqui ó vou no meu computador vou lá no meu eh aqui ó eu tenho eu vou sair né vou vou na pasta vou criar uma pasta aleatória o que que eu fiz né eu fui ah na pasta do meu usuário aqui ó se eu até abrir o Finder aqui ó eu criei uma pasta www Então dentro de Diego Fernandes Ó tem www e aqui eu boto todos os meus projetos né então eu vou querer que você faça
algo parecido cria uma pasta aí onde você vai ter os seus projetos aí eu vou entrar aqui ó nlw Connect deixa eu criar aqui uma pastinha aulas e E aí dentro da pasta aulas né aqui eu tô usando pelo terminal Mas pode criar pelo pelo Explorer al do Windows e tudo mais eu prefiro criar pelo terminal tá E aí aqui dentro dessa pasta aulas vou até abrir ela no no Finder para você ver ó já tô aqui com ela pastinha aulas aqui ó Connect aulas na verdade que que eu vou fazer eu vou abrir o
ves code nessa pasta aqui né então aqui no V code eu dou um Open folder venho aqui ó www nlw Connect aulas e abro aqui tá E aqui eu já tô com vest code aberto então aqui dentro e que que eu vou fazer aqui vou criar pastinha chamada é server que é onde vai est o meu node né então a gente pode vir aqui ah e eu vou criar dentro dessa pastinha ou melhor que que eu vou fazer eu vou deixa eu fazer o seguinte eu vou eu vou abrir o vesc de novo aqui ó
na verdade tá deixa eu botar ele aqui pro lado eu vou abrir a pasta server que eu acabei de criar então vou lá de novo nlw Connect aulas server tá porque assim ó daí não fica a pastinha ali a gente pode criar arquivo aqui na raiz mesmo tá E aí vou criar aqui um arquivo chamado hello.js arquivo JavaScript tá E aqui eu vou escrever simplesmente ó dar um pouquinho de zoom aqui a fonte tá muito pequena tá deixa eu ir lá nas minhas configurações botar aqui ó editor ponto Opa fonte size botar aqui 18 botar
a vírgula aqui em cima que senão ele se perde perfeito agora o que que eu vou fazer zer arquivo Hello aqui ó vou escrever console.log hello world salvo aqui a gente pode vir agora aqui no nosso terminal aqui ó vamos entrar na pasta server tá E aí no no Windows os comandos são um pouquinho Diferentes né dependendo o powershell se tu tiver no powershell pode usar CD acho que se tiver no Command prompt que eu não recomendo tem que usar dir acho não lembro mais muito tempo que eu não uso tá E aí aqui a
gente pode executar node e passa o nome do arquivo hello.js veja ele vai mostrar hello world se o seu mostrou hello world quer diz quer dizer que tá tudo pronto pra gente sair criando a nossa aplicação com node aqui dentro tá vou até jogar aqui uns confetes na tela Eita Cadê Cadê Cadê meus confetes sumiu tudo aqui agora sim já ia quase me esquecendo que tem uma das Ferramentas que você como Dev backend vai precisar aprender seja com node Java Python PHP qualquer tecnologia no backend principalmente que é o docker e o docker a gente
vai utilizar aqui dentro tá se você nunca utilizou o docker o docker é uma maneira da gente conseguir executar serviços os quais a nossa aplicação depende como por exemplo um banco de dados um postgis um Rides um mongo por aí vai de uma maneira altamente isolada dentro do nosso sistema e o grande ponto né do docker usado nesse caso para ambiente de desenvolvimento né claro ele pode ser usado Ele tem ótimas vantagens também para Deploy Mas isso é um outro assunto mas focado em ambiente desenvolvimento é imagina que você tem vários projetos que você dá
manutenção e cada um deles precisa de um banco de dados numa versão diferente um deles precisa do mysle o outro precisa do postgis na versão 13 o outro post na versão 16 e por aí vai ou seja é muito difícil tu criar um ambiente na tua máquina que ele tenha todos esses esses sistemas né Essas dependências ali disponíveis né e ainda mais imagina que tu tem um sistema que daqui a pouco ele depende do postc do Mongo do Rides uma só aplicação e tu tá fazendo onboarding né contratando novas pessoas essas pessoas precisam sempre ficar
instalando isso na máquina delas com o docker não né o docker a gente consegue simplesmente ali na nossa aplicação falar olha nossa aplicação precisa do postc 15 e a pessoa roda um comando e o postc sobe na máquina dela em questão de menos de um segundo isso é muito legal funciona super bem principalmente porque esses contêiners né como eles são chamados ali no docker né Que nada mais são do que mini sistemas operacionais rodando dentro da nossa máquina diferente de uma virtualização que ela roda um sistema inteiro dentro da nossa máquina esse contêiners eles podem
ah ser criados e deletados isso não afeta o resto do nosso do nosso sistema isso é legal porque eu posso subir um post posso instalar várias extensões daqui a pouco deu errado cara quero começar do zero mata o contêiner cria de novo faz toda a instalação configuração do Zero Isso é bem legal porque a gente suja menos a nossa máquina com Digamos um monte de configuração que é difícil depois tirar né trocar versão e tudo mais Ah e a gente usa algo que deixa tudo isso mais isolado né então ainda até aqui pro site ah
do docker Eu quero que você vá no Google aí procura docker get docker né aqui vai tá aqui ó Nessa primeira página aqui vai tá o guia de instalação só que esse guia de instalação muitas vezes ele pode ser um pouco confuso tá então eu vou deixar aqui embaixo na descrição dessa aula aqui nos links dessa aula um guia que a gente preparou aqui o time da Rocket preparou com instalação do docker em cada sistema operacional no Linux no Mac no Windows de uma maneira mais fácil mais simples para você seguir e qualquer dúvida que
você tenha o docker ele é um pouquinho chatinho de instalação principalmente no Windows Ah porque ele tem algumas dependências ali do sistema mas a gente vai colocar tudo nesse guia ou se você tiver qualquer dúvida vai na comunidade a gente tá lá para ajudar porque a gente já passou também por todos os problemas possíveis que o docker pode dar pode ter certeza tá E aí depois de instalar o docker como é que tu vai fazer para testar que o docker tá funcionando né tu pode aqui num terminal qualquer né num powershell da vida no L
no Windows E por aí ah digitar docker menos v e ele vai mostrar a versão precisa ser igual à minha Não claro que não a versão não é o mais importante tá E aí a gente vai aprender aqui alguns comandos que são importantes do docker tá primeira coisa existe um site chamado docker Hub o docker Hub nada mais é do que um github para docker ou seja ele é um Hub que tem vários contêiners prontos Então imagina Poxa eu quero rodar postc na minha máquina você vem aqui escreve postc e você vai achar algumas imag
imag do post essa aqui que é oficial por exemplo mas existem imagens do posters por exemplo criadas por várias pessoas e aí Claro com com funcionalidades às vezes diferentes versões diferentes né ah Quero rodar um Rides ó Você vai procurando E você tem aqui basicamente quase todo tipo de serviço e tudo mais e tem muita coisa tá se tu for aqui na explore tu vai ver que tem muita coisa que dá para você rodar e o docker ele é uma maneira muito simples de de de instalar coisas Claro não softwares que são executáveis assim né
né tipo um vest code mas essas coisas que são serviços né de de desenvolvimento Ah e aqui tem uma tem uma imagenzinha que se chama hello world tá hello world é basicamente uma forma da gente identificar que o docker tá funcionando na nossa aplicação Então veja só pra gente primeiro baixar essa imagem como se fosse um Git Clone né ah a gente vai pegar aqui copiar e executar Esse comando docker Pool hello world nesse momento O que que ele vai fazer ele vai baixar essa imagem lá de dentro do docker HUB ela bem levinha pode
ver que a minha já até terminou de executar aqui e aí eu posso executar um comando docker images para listar as imagens que eu tenho instaladas no meu sistema e eu tenho muita imagem instalada então eu posso ver aqui ó que a hello world tá aqui em cima ó ela foi instalada ela foi criada na verdade duas semanas atrás mas ela foi instalada agora tá e ela tem aqui ó 5 KB ela uma imagem bem bem bem eu acho que é essa mesmo né Eu acho que é isso tá E aí agora como é que
a gente faz para executar a gente pode simplesmente executar docker Run hello world se eu executar agora Teoricamente Você tem que ver essa mesma mensagem que eu vi aqui ó hello From docker This message shows that your installation appears to be working correctly ou seja se você viu essa mensagem quer dizer que a sua instalação do docker tá correndo tudo bem tá tudo certo com ela né e e aqui basicamente a gente tem alguns comandos que a gente pode executar né como eu mostrei o docker images ali a gente tem o docker PS que é
pra gente verificar é imagens que estão executando naquele momento então por exemplo se eu for aqui em docker images ah a gente vai ver que eu tenho aqui por exemplo a imagem do ris tá E aí eu vou te mostrar por exemplo eu posso rodar essa imagem ah do ris simplesmente passando aqui um ã um nome Vou botar aqui um nome nome para ela vou botar botar um docker run ah radies vou dar um nome para ela aqui test radies tá e se eu der um enter Ahã deixa eu ver acho que eu consigo rodar
sem o Tag aqui deixa eu só dar um enter aqui ó ó ele já consegue já tá rodando raides Então veja como é simples né Eu simplesmente executo um comando menos de um segundo o Rides já tá rodando na minha aplicação só que veja que ele fica aberto aqui ó não consigo mexer mais no terminal não consigo executar mais nada aqui dentro para que ele não fique aberto dessa forma quando a gente rodar uma imagem né um sistema eu posso botar a a Flag aqui ó menos D menos D se chama detached né então ele
vai rodar em background agora o por que ele tá Bad directive or R Number Cara o que que eu tô docker deixa eu lembrar aqui docker run ah eu acho que é porque eu tenho que passar o nome Ah eu acho que o nome aqui Radi tem que ser o último argumento acho que é por isso exatamente tá então o menos D tinha que vir no começo por isso tava dando erro e aí é que ele deu um ID bem louco tá vendo isso aqui é o ID da nossa imagem se eu rodar um docker
PS agora ó ele roda ele mostra todas as imagens que estão rodando naquele momento então tô rodando Rides e tá rodando a 9 segundos legal isso aqui né E aí eu posso por exemplo parar o radies né e pronto ele não vai mais estar rodando E aí eu posso executar um docker PS menos a para eu ver todas as imagens que em algum momento Eu já subi né só que estão paradas nesse momento e aqui a gente pode ver que eu tenho também imagem para caramba né E aí se eu for ver Cadê o meu
raides ali como é que era o nome que eu tinha dado para ele na verdade eu não dei nome né então eu acho que ele acabou só lembro que o ID dele tava aqui ó começava com 75 Ah tá aqui ó essa primeira imagem aqui em cima que ele deu esse nome maluco aqui mis fine Buck tá E aí ela foi exited né ela tá não tá mais rodando se eu quero rodar ela de novo eu posso rodar um docker start e passar aquele ID de novo que é era esse aqui só que ele tem
uma versão reduzida que eu tirei do meu control c Por isso que deu erro né mas Showa a gente já aprendeu os os comandos mais importantes aqui do docker docker start docker stop docker PS docker images né então o docker pool pra gente baixar uma imagem e é isso que a gente vai fazer tá a gente vai baixar a imagem aqui no nosso caso na nossa trilha de node tanto do postr quanto do ridis que são as duas ferramentas que a gente vai usar para desenvolver a nossa api e vamos lá né agora que a
gente já tá com o nosso ambiente a config segurado aqui né é super importante que você entre na comunidade do discord Porque vão surgir dúvidas e vão surgir erros que você vai ficar horas tentando resolver e não vai conseguir tô falando só do nlw não tô falando da sua vida como programador ou como programadora eu até hoje mesmo após completando 14 anos na área tem vezes que eu passo um dia inteiro tentando resolver um erro e não consigo daí eu vou dormir o outro dia eu chego e 5 minutos depois eu consigo resolver aquele problema
e você vai passar por isso e se na primeira os primeiros 15 minutos que você tiver esse erro você já desistir achando que programação não é para você realmente programação não é para você troca de área porque isso é é uma área que precisa de persistência uma área que precisa de determinação para você conseguir passar por esses erros resolver esses erros e dar os próximos passos então assim é super importante que primeiro você vá até o final Independente de erros que você vá ter porque você vai ter problemas que você vai ter principalmente se você
é mais iniciante e você entra na comunidade do para tirar todas as dúvidas que você tiver conversar com as dezenas de milhares de alunos que estão passando por esse mesmo momento que você com os instrutores da Rocket comigo e tudo mais fechou eu te vejo na próxima aula onde a gente vai começar a codar o nosso projeto colocar a mão na massa eu vou te mostrar o projeto e vai ser bem massa