Com o passar dos anos, a tecnologia Node.js já rivaliza com tecnologias tradicionais com como o ASP.NET, JSF, Ruby, PHP e Python em ambientes dinâmicos como startups e empresas de produtos Web. Mesmo empresas tradicionais no Brasil já tem começado a experimentar essa tecnologia bastante promissora.
Já apresentei aqui como fazer uma aplicação mínima em Node.JS, para aqueles que estão tendo o primeiro contato com essa tecnologia.
Ao mesmo tempo, algumas pessoas ainda perguntam: “É possível fazer em Node.JS uma aplicação com acesso a banco de dados com controle transacional, suporte a APIs REST, micro-serviços, com segurança forte, tolerância a falhas e operação em cluster, entre outras preocupações técnicas corporativas?”.
A resposta, retumbante, é sim.
Para isso basta você acrescentar novos módulos ao node com o comando npm install -g <NomeModulo>. Isso é porque o Node.js vem pelado de fábrica e você deve incluir módulos conforme necessário. Essa abordagem minimalista, que permite criar ambientes Web muito leves, é um dos fatores de sucesso do Node.JS
Compilo aqui alguns módulos que podem ajudá-lo na jornada do Node.JS e fazer aplicações cada vez melhores no mundo JavaScript.
- ExpressJS[1] – Biblioteca para gerir requisições HTTP de forma facilitada a aplicativos móveis e Web.
- LoopBack[2] [3] – Framework para a montagem rápida de aplicações Node. Esse framework conta com suporte da IBM e StrongLoop e tem ferramentas visuais para a geração de modelos, APIs Rest, scaffoldings e conectores com banco de dados.
- Restify[4] – Módulo para facilitar a criação de web services REST.
- PassportJS[5] – Biblioteca para autenticação de usuários em aplicações Node. Conta já com mais de 300 estratégias de autenticação como por exemplo OpenID, OAuth1, OAuth2 ou SAML.
- Node-mysql[6] – Biblitoeca para acesso a aplicações MySQL com Node.
- Node-OracleDB[7] – Driver mantido pela própria Oracle[8] para acesso aos banco de dados Oracle em aplicações Node.
- Mssql[9] – Driver para acesso a banco de dados SQL Server em aplicações Node.
- Mongoose[10] – Framework para manipulação do banco de dados Non-SQL MongoDB.
- Azure[11] – Facilitador para implantação de aplicações Node em ambiente Microsoft Azure, mantido pela própria Microsoft.
- Mocha[12] – Biblitoeca para testes de unidade para aplicações Node.
- Pm2[13] – Gerenciamento de processo de produção para aplicações Node, com suporte a clusters, balanceamento de carga e tolerância a falhas.
- NodeMon[14] – Biblioteca utilitária para facilitar a monitoração de mudanças no seu código fonte e recarregar automaticamente a sua aplicação Web.
- Commander[15] – Módulo facilitador de execução de programas de linhas de comando em aplicações Node.
- Nodemailer[16] – Biblioteca para a manipulação de emails em aplicações Node.
- Request[17] – Biblioteca ainda mais simples que o Express para a manipulação de requisições HTTP.
- Hapi[18] – Um outro framework HTTP para desenvolvimento de aplicações Web em Node.
- Bluebird[19] – Biblioteca para facilitar a escrita de programas concorrentes, com suporte à primitiva de programação promise[20].
- Async[21] – Módulo utilitário para fornecer funções de manipulação de código assíncrono em JavaScript.
- stomp-client[22] – Módulo utilitário para clientes do protocol de fila de mensagens Stomp[23], suportado em implementações como o Apache ActiveMQ[24] e outros sistemas de filas de mensagem.
- Numerals.JS[25] – Biblioteca utilitária para manipular e formatar números.
- MomentJS[26] – Biblioteca utilitária para manipular datas.
- ShouldJS[27] – Biblioteca utilitária para auxiliar a escrita de testes BDD em JavaScript.
- Nock[28] – Biblioteca para criar mocks e simulações em testes de unidade JavaScript.
O portal do npmjs mantém uma lista de pacotes populares JavaScript e pode ser usado como fonte de referência para acompanhar novidades da comunidade. Para mais informações, veja aqui: https://www.npmjs.com/browse/star.
E você que já trabalha em Node.JS, que módulos Node.JS utiliza ou pretende utilizar para desenvolver aplicações Web JavaScript? Complemente essa lista. 🙂
[1] http://expressjs.com/pt-br/
[3] http://loopback.io/resources/#compare
[6] https://www.npmjs.com/package/node-mysql
[7] https://www.npmjs.com/package/oracledb
[8] http://www.oracle.com/technetwork/database/database-technologies/scripting-languages/node_js/index.html
[9] https://www.npmjs.com/package/mssql
[11] https://azure.microsoft.com/pt-br/develop/nodejs/
[15] https://www.npmjs.com/package/commander
[16] https://www.npmjs.com/package/nodemailer
[17] https://www.npmjs.com/package/request
[19] http://bluebirdjs.com/docs/why-promises.html
[20] https://en.wikipedia.org/wiki/Futures_and_promises
[21] https://github.com/caolan/async/blob/v1.5.2/README.md
[22] https://www.npmjs.com/package/stomp-client
[24] http://activemq.apache.org/stomp.html
[27] https://github.com/shouldjs/should.js
[28] https://github.com/node-nock/nock