Pesquisa de site

Como escrever seu primeiro aplicativo Node.js no Linux


As tendências de desenvolvimento web mudaram drasticamente nos últimos anos e, como desenvolvedor web, para estar no topo do jogo, é importante manter-se atualizado com as tecnologias mais recentes.

JavaScript é a linguagem de programação em alta no mercado; é sem dúvida a tecnologia mais popular usada por desenvolvedores full stack.

Os frameworks web JavaScript se tornaram uma solução mágica para um desenvolvimento web mais rápido com eficiência absoluta, segurança e custos minimizados. Tenho certeza que você já ouviu falar sobre Node JavaScript (comumente chamado de Node.js ou simplesmente Node), há um burburinho sobre isso na internet.

Neste artigo, mostrarei como começar a desenvolver aplicativos em JavaScript usando Node.js no Linux. Mas primeiro, vamos fazer uma breve introdução ao Node.js.

O que é Node.js?

Node.js é um tempo de execução JavaScript de código aberto, leve e eficiente, desenvolvido no mecanismo JavaScript V8 do Chrome. Ele foi projetado sem threads (threaded único) e possui uma implementação semelhante ao Twisted, um mecanismo de rede construído usando Python ou Event Machine, uma biblioteca de processamento de eventos para programas Ruby.

O coração do Node.js é baseado na programação orientada a eventos; um programador deve, portanto, compreender quais eventos estão disponíveis e como responder a eles.

Gerenciamento de pacotes em Node.js

Node.js usa o gerenciador de pacotes JavaScript e o ecossistema chamado “npm ”, que contém uma imensa coleção de bibliotecas gratuitas de código aberto. Ele oferece suporte ao desenvolvimento modular de software. Você pode usá-lo para instalar pacotes de nós, compartilhar, distribuir seu código e gerenciar dependências de pacotes.

Por que o Node.js é importante?

Node.js é poderoso e, portanto, importante pelos seguintes motivos:

  • Ele usa um modelo de execução de E/S sem bloqueio e orientado a eventos assíncronos, que melhora o rendimento de um aplicativo e oferece suporte à escalabilidade para aplicativos da Web do mundo real.
  • É de thread único, portanto, só pode usar 1 CPU por vez.
  • Um aplicativo da web node.js é um servidor da web completo, por exemplo, Nginx ou Apache.
  • Ele suporta threads por meio da API child_process.fork(), para gerar processos filhos, e também oferece um módulo de cluster.

Com esta breve introdução, você deve estar ansioso para escrever seu primeiro programa JavaScript. No entanto, primeiro de tudo, você precisa instalar os pacotes Node.js e NPM em seu sistema Linux usando o guia a seguir.

  1. Instale a versão mais recente do Nodejs e do NPM em sistemas Linux

Como criar seu primeiro aplicativo Node.js no Linux

Depois de instalar o Node.js, você estará pronto para começar. Primeiro comece criando um diretório que armazenará os arquivos do seu aplicativo.

sudo mkdir -p /var/www/myapp

Em seguida, vá para esse diretório e crie um arquivo package.json para seu aplicativo. Este arquivo serve como uma pequena documentação para o seu projeto: nome do projeto, autor, lista de pacotes dos quais depende e assim por diante.

cd /var/www/myapp
npm init

Isso fará uma série de perguntas, basta responder conforme descrito abaixo e pressionar [Enter]. Observe que as coisas mais importantes em package.json são os campos de nome e versão conforme explicado abaixo.

  • nome do pacote – o nome do seu aplicativo, o padrão é o nome do diretório.
  • versão – versão do seu aplicativo.
  • descrição – escreva uma breve descrição para seu aplicativo.
  • ponto de entrada – define o arquivo de pacotes padrão a ser executado.
  • comando de teste – usado para criar um script de teste (o padrão é um script vazio).
  • repositório git – defina um repositório Git (se você tiver um).
  • palavras-chave – defina palavras-chave importantes para outros usuários identificarem seu pacote no npm.
  • autor – especifica o nome do autor, coloque seu nome aqui.
  • licença – especifique uma licença para seu aplicativo/pacote.

Em seguida, crie um arquivo server.js.

sudo vi server.js

Copie e cole o código abaixo nele.

var http = require('http');
http.createServer(function(req,res){
        res.writeHead(200, { 'Content-Type': 'text/plain' });
        res.end('Hello World!');
}).listen(3333);
console.log('Server started on localhost:3333; press Ctrl-C to terminate...!');

Em seguida, inicie seu aplicativo usando o seguinte comando.

node server.js
OR
npm start

Em seguida, abra um navegador da web e acesse seu aplicativo da web, que não faz nada além de imprimir a string ”Olá, mundo! ”, usando o endereço:

http://localhost:3333

No nosso código acima, o evento principal que está sendo processado é uma solicitação HTTP através do módulo HTTP.

O módulo HTTP Nodejs

No Node.js, os módulos são mais parecidos com bibliotecas JavaScript, eles contêm funções que você pode reutilizar em seu aplicativo. Você pode usar módulos integrados, trinta módulos de terceiros ou criar os seus próprios.

Para chamar módulos em seu aplicativo, use a função require conforme mostrado.

var http = require('http');

Uma vez incluído o módulo http, ele criará um servidor que escuta em uma porta específica (3333 neste exemplo). O método http.creatServer cria o servidor http real que aceita uma função (que é invocada quando um cliente tenta acessar o aplicativo) como argumento.

http.createServer(function(req,res){
        res.writeHead(200, { 'Content-Type': 'text/plain' });
        res.end('Hello World!');
}).listen(3333);

A função em http.createServer possui dois argumentos: req(request) e res(response). O argumento req é a solicitação de um usuário ou cliente e o argumento res envia uma resposta ao cliente.

res.writeHead(200, { 'Content-Type': 'text/plain' });		#This is a response HTTP header
res.end('Hello World!');

A parte final do código envia a saída para o console, assim que o servidor é iniciado.

console.log('Server started on localhost:3333; press Ctrl-C to terminate...!');

Roteamento em Node.js

Nesta seção, explicarei um dos conceitos mais importantes da programação Node.js, conhecido como roteamento (comparável ao roteamento em redes de computadores: processo de encontrar um caminho para o tráfego em uma rede).

Aqui, roteamento é uma técnica de tratamento da solicitação de um cliente; veiculando o conteúdo solicitado pelo cliente, conforme especificado na URL. Uma URL é composta por um caminho e uma string de consulta.

Para visualizar a string de consulta de solicitação de um cliente, podemos adicionar as linhas abaixo em nossa resposta.

res.write(req.url);
res.end()

Abaixo está o novo código.

var http = require('http');
http.createServer(function(req,res){
        res.writeHead(200, { 'Content-Type': 'text/plain' });
        res.write(req.url);
      res.end();		
      }).listen(3333);
console.log('Server started on localhost:3333; press Ctrl-C to terminate...!');

Salve o arquivo e inicie seu aplicativo novamente usando o seguinte comando.

node server.js
OR
npm start

Em um navegador da web, digite URLs diferentes que serão exibidos conforme mostrado abaixo.

http://localhost:3333
http://localhost:3333/about
http://localhost:3333/tecmint/authors

Agora vamos criar um site bem pequeno para a Tecmint com uma homepage, páginas sobre e autores. Mostraremos algumas informações nestas páginas.

Abra o arquivo server.js para edição e adicione o código abaixo nele.

//include http module 
var http = require('http');

http.createServer(function(req,res){
	//store URL in variable q_string

	var q_string = req.url;
	switch(q_string) {
		case '/':
                        	res.writeHead(200, { 'Content-Type': 'text/plain' });
                        	res.write('Welcome To linux-console.net!')
                        	res.end();
                        	break;
                	case '/about':
                		res.writeHead(200, { 'Content-Type': 'text/plain' });
                        	res.write('About Us');
                        	res.write('\n\n');
                        	res.write('linux-console.net - Best Linux HowTos on the Web.');
                        	res.write('\n');
                        	res.end('Find out more: https://linux-console.net/who-we-are/');
                        	break;
                	case '/tecmint/authors':
                        	res.writeHead(200, { 'Content-Type': 'text/plain' });
                        	res.write('Tecmint Authors');
                        	res.write('\n\n');
                        	res.end('Find all our authors here: https://linux-console.net/who-we-are/');
                        	break;
                	default:
                       		res.writeHead(404, { 'Content-Type': 'text/plain' });
                       		res.end('Not Found');
                        	break;
	}
}).listen(3333);
console.log('Server started on localhost:3333; press Ctrl-C to terminate....');

No código acima, vimos como escrever comentários em Node.js usando os caracteres // e também introduzimos instruções switch e case para rotear solicitações de clientes.

Salve o arquivo, inicie o servidor e tente acessar as diversas páginas.

Por enquanto é isso! Você pode encontrar mais informações nos sites Nodejs e NPM.

Leia também: Como instalar o PM2 para executar aplicativos Node.js no Linux

Conclusão

Node.js está atingindo novos patamares hoje, tornando o desenvolvimento full-stack muito mais fácil do que antes. Sua filosofia única de programação orientada a eventos permite que você crie processos e servidores web extremamente rápidos, eficientes e escalonáveis.

A seguir, explicaremos as estruturas Node.js, que ampliam seus recursos nativos para o desenvolvimento rápido e confiável de aplicativos web/móveis. Compartilhe suas idéias sobre este artigo por meio da seção de comentários abaixo.