Postagens

Mostrando postagens com o rótulo NodeJS

Javascript / NodeJs - Varias maneiras de escrever uma função

Imagem
Uma função pode ser declarada de várias formas diferentes. Abaixo estão alguns exemplos. Ao implementar funções em javascript para navegadores cuidado com a versão do mesmo. Algumas versões de navegador podem não interpretar as ultimas duas maneiras de declaração. Function declaration A primeira é a mais conhecida function resultado ( numero ) { return 2 * numero } Function Expression const resultado = function( numero ) { return 2 * numero } Arrow function expression const resultado = numero => { return 2 * numero } No caso de dois ou mais parâmetros de entrada da função const resultado = ( numero , multiplicador ) => { return multiplicador * numero } Anonymous Arrow function Com parâmetro (( numero ) => { console.log( 2 * numero ) })( numero ) Sem parâmetro (() => { console.log( 2 * 2 ) })() Assíncrono (async () => { console.log( 2 * 2 ) })() Concise Arrow function expression const resultado = numero => 2 * numero ...

NodeJS / Javascript - Concatenando arrays com concat

Imagem
Para concatenar arrays em Javascript basta aplicar o método .concat() let result = ['a','b','c'].concat(['d','e','f']) O resultado será a array abaixo: ['a','b','c','d','e','f'] Outra maneira de aplicar a função: let var1 = ['a','b','c'] let var2 = ['d','e','f'] let result = var1.concat(var2) O resultado será o mesmo do exemplo anterior: ['a','b','c','d','e','f'] É possível também fazer uma concatenação de uma array dentro de um objeto como no exemplo abaixo: let content = [{titulo:'Titulo 1',tags:['tag1','tag2']},{titulo:'Titulo 2',tags:['tag3','tag4']}] let result = [] content.map( item => { result = result.concat(item.tags) } ) Como resultado temos: ['tag1', 'tag2...

Linux / Shell Script - Repetindo um comando no terminal a cada X intervalos de tempo

Imagem
Muitas vezes precisamos monitorar o funcionamento de aplicações que precisam pegar dados em web services, APIs, gerar arquivos de tempos em tempos, logs e etc. O comportamento das aplicações podem variar muito conforme o tipo de dados que recebemos e processamos, principalmente quando não temos o controle completo do dado que chega. Um bom meio para fazer isso é deixar sua aplicação rodando por algum tempo sozinha, coisa que seria muito chata de fazer manualmente. O Shell do Linux nos permite fazer facilmente um timer para rodar nossa aplicação, por exemplo, a cada 20 minutos. No final do dia podemos ver os logs, arquivos gerados ou as atualizações em um banco de dados de testes para verificar se o comportamento foi o esperado. O comando Shell é o que segue abaixo: while true; do <your_command>; sleep <interval_in_seconds>; done Vamos supor que queremos rodar uma aplicação NodeJs a cada 20 minutos. Para isso vamos na pasta em que se encontra nossa apl...

NodeJs - Corrigindo o encode do retorno de um request com iconv-lite

Imagem
Uma maneira prática de corrigir o problema de caracteres UTF8/ISO-8859-1 é usando iconv-lite. Para instalar o iconv-lite em seu projeto Node: npm install iconv-lite ( ou npm install iconv-lite --save caso queira registrar no arquivo package.json) Aplicando a solução: const iconv = require('iconv-lite'); request( { url : 'http://www.minhaurl.com.br' , encoding : null } , function ( error , response , body ) { if( !error ) { let textEncoded = iconv.decode( body , 'iso-8859-1'); console.log( textEncoded ); } } );

NodeJS / Javascript - Como utilizar o método .reduce() para contar itens de uma array

Imagem
.reduce() é um método pouco explorado pela maior parte dos desenvolvedores que geralmente preferem trabalhar com for/whiles. A utilização do método .reduce() torna o código mais elegante e profissional porém para isso precisamos fazer uma pequena investigação de como ele funciona para depois disso, utilizando o conhecimento adquirido, criar nosso método de contagem de itens. Sua estrutura básica segue o padrão: array.reduce(callback, [initialValue]) Onde callback é uma função de retorno e initialValue é o valor inicial recebido pelo método. Para isso vamos trabalhar com a Array simples indicada abaixo: words = ['abacaxi','banana','maçã','abacaxi','pera','banana','uva','laranja'] Vamos agora investigar como .reduce() trata a Array através do código abaixo: words.reduce(function( object , item ){ console.log( object , item ); },{})   .reduce() interage em cada elemento da Array li...