Guia de Referência

Node.js


Neste Guia de Referência você encontrará o conteúdo que precisa para aprender a desenvolver aplicações com o Node.js.

Introdução ao Node.js

O Node.js é um runtime de JavaScript que permite executar aplicações com essa linguagem fora do browser. Ou seja, trata-se de uma plataforma de desenvolvimento de aplicações do lado servidor que utiliza o JavaScript como linguagem de programação. Com ele podemos usar essa mesma linguagem da mesma forma que usamos Java, C# e PHP, por exemplo.

De fato o Node.js baseia-se no V8, o mecanismo responsável pela interpretação do JavaScript no Google Chrome. Ou seja, se você já usou JavaScript no front-end de aplicações web, poderá aproveitar o conhecimento sobre essa linguagem e programar também o back-end.

Para dar os primeiros passo e compreender na prática como isso funciona, que tal assistir o curso abaixo?

Dentro do Node.js há um componente fundamental chamado NPM (Node Package Manager). Ele é o responsável pela instalação e atualização dos pacotes/bibliotecas utilizados nos projetos, além de poder ser utilizado na execução e testes das aplicações. Portanto, conhecer o NPM e saber utilizá-lo é fundamental para você que deseja usar o Node.js. E para lhe ajudar preparamos um curso no qual você vai conhecer essa ferramenta e compreender seu funcionamento:

Bancos de dados no Node.js

No Node.js o acesso a diferentes bancos de dados é bastante facilitado pelo uso de pacotes construídos por empresas e pela comunidade técnica. Normalmente estão disponíveis mais de uma opção de pacote para lidar com um mesmo banco, o que nos dá a liberdade de escolher aquele que melhor atenda nossas necessidades.

Dentre os vários bancos em uso hoje em dia, em aplicações Node.js destaca-se o uso do MongoDB, um banco NoSQL orientado a documentos e que armazena as informações no formato JSON. Além dos vários pontos positivos do uso de bancos não relacionais, devido a utilizar a notação de objetos do JavaScript, o MongoDB tem sido bastante adotado em conjunto com o Node.js, uma vez que a conversão dos dados da aplicação para o banco e vice-versa é simplificada. Para ver na prática essa combinação você pode conferir o curso abaixo:

Caso queira saber mais sobre o MongoDB, consulte o Guia de Referência abaixo, no qual você encontrará diversos conteúdos sobre esse banco:

Aplicações web com Node.js

O Node.js é uma das plataformas que mais vem ganhando destaque na construção de aplicações web. Alguns dos motivos para isso são seu bom desempenho, o uso do JavaScript (uma linguagem já bastante conhecida) e a ampla quantidade de pacotes/bibliotecas disponíveis para a realização de várias tarefas comuns (acesso a banco de dados, log, servidores web, etc.).

Nesse contexto, o primeiro passo é saber como criar um servidor web com o Node.js, o que você pode aprender no artigo abaixo:

A partir daí é possível criar diferentes aplicações web. Para ter uma ideia do que dá pra fazer, confira os artigos abaixo:

O Node.js também pode ser facilmente integrado a frameworks JavaScript, como AngularJS, e é base para várias outras plataformas que tem o JavaScript como linguagem principal, como o Meteor.js. Quer saber mais? Separamos alguns artigos que vão lhe ajudar:

Como você deve ter percebido, as possibilidades com o Node.js são diversas. E quando combinado com o MongoDB essa plataforma reforça sua capacidade de escalabilidade e performance. Por exemplo, como você pode ver no artigo abaixo é bastante simples armazenar dados de geoprocessamento no MongoDB com o Node.js quando utilizamos a API do Google Maps:

Programação assíncrona com Node.js

Programação assíncrona é um conceito muito forte no Node.js. De forma resumida, esse modelo de programação nos permite executar um determinado procedimento e seguir com o fluxo do código sem que o programa seja interrompido até a finalização do processamento. Ao invés de aguardar o resultado daquela ação (de forma síncrona) nós usamos as chamadas funções de callback, que são executadas quando o processamento finaliza (de forma assíncrona).

Para que você possa compreender melhor essa prática sugerimos a leitura do artigo abaixo:

Testes

Os testes são uma etapa fundamental no desenvolvimento de software. Somente testando nossas aplicações podemos garantir que elas serão entregues ao cliente final com a maior qualidade possível.

Nesse contexto uma das práticas mais comuns é o TDD (Test-Driven Development), que prega a realização de testes durante todo o processo de desenvolvimento. Para aprender a usar o TDD em aplicações Node.js você pode ver o artigo abaixo, que lhe auxiliará na adoção dessa técnica:

Programação web com Express

Atualmente o Express é o framework mais utilizado para o desenvolvimento de aplicações web com Node.js.  Além de facilitar a implementação do padrão MVC, ele conta com diversos pacotes adicionais para a realização de tarefas comuns, como o processamento de formulários, renderização de views, etc.

Que tal dar uma olhada nesse framework e considerar utilizá-lo em seus projetos? Para lhe ajudar preparamos um curso que vai lhe apresentar os conceitos iniciais sobre o Express:

Conteúdo extra

A criação de novos projetos, principalmente de aplicações web que envolve várias pastas e arquivos, pode se tornar um processo custoso se precisarmos configurar manualmente essa estrutura. Para auxiliar nesse momento pode ser bastante útil usar uma ferramenta de scaffold, ou seja, uma ferramenta que crie e configure a estrutura inicial do projeto. Nesse contexto o DevCast abaixo apresenta o Yeoman, uma das principais ferramentas utilizadas atualmente na criação de projetos web com diferentes linguagens e frameworks:

Guias relacionados

Como você já sabe, o Node.js utiliza o JavaScript como linguagem de programação. Logo, se aprofundar nessa linguagem é uma boa ideia para que você possa desenvolver aplicações cada vez mais eficientes e bem escritas. Nesse ponto o link abaixo vai lhe ajudar a explorar o JavaScript em maiores detalhes:

E seguindo no universo Node.js um termo que você vai ouvir com frequência é MEAN Stack. Trata-se de uma stack de desenvolvimento (conjunto de tecnologias) composta por MongoDB+Express+AngularJS+Node.js. Essa stack permite o desenvolvimento de aplicações completas usando JavaScript como linguagem de programação, tanto no front-end (AngularJS), quanto no back-end (Node.js + Express) e no banco de dados (o MongoDB armazena dados no formato JSON).

Se você quiser se aprofundar nesse assunto, o Guia de Referência abaixo é um excelente ponto de partida:

Ficou com alguma dúvida?