Crie uma app de meteorologia em menos de 5 minutos

6 Comentários

Ser programador é ter desafios constantes com o objetivo de solucionar problemas. No entanto, atualmente, existe também já muito código feito que facilmente podemos adaptar e encaixar nos nossos projetos.

Por outro lado, podemos também fazer uso de APIs com o objetivo de aproveitar serviços já existentes. Depois de ensinarmos a  criar uma app de meteorologia usando Node.js e a API OpenWeatherMap hoje vamos ver como podemos formatar o output.


Como vimos neste tutorial, usando Node.js e a API OpenWeatherMap facilmente podemos obter a informação meteorológica de uma determinada cidade. No entanto, no nosso exemplo, o output é apresentado em JSON o e, nesse sentido, é necessário “formatar” a informação.

Para tal, podemos usar no Node.js a função JSON.parse e aplicar ao output que é obtido em JSON  e assim obter os campos que pretendemos. Por exemplo, vamos considerar que pretendemos saber a temperatura, humidade e pressão atmosférica para a cidade da Guarda.

Para começar vamos passar o output em JSON para um objeto JavaScript. Para tal basta que use a seguinte linha de código:

let weather = JSON.parse(body)

Agora que temos a informação num objeto JavaScript, podemos aceder individualmente a dados contidos nesse objeto como, por exemplo, a temperatura, humidade, etc.

Por exemplo, se pretendermos escrever apenas a temperatura basta usar o seguinte código:

let dados = `Temperatura para a ${weather.name}: ${weather.main.temp}º`;
console.log(message);

Vamos agora considerar um exemplo mais completo, que irá escrever a Temperatura e Humidade para a cidade definida. O código será o seguinte:

Executando o comando node index.js o output será o seguinte:

E basicamente é isto! Com esta informação podemos criar outro tipo de app, com uma interface mais evoluída ou até um site com esta informação. Com o nodeJS é muito simples criar um servidor Web e publicar a informação – podem ver aqui como fazer.

Leia também…

Crie uma simples App de meteorologia usando Node.js e a API OpenWeatherMap

Comentários

6

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

  1. Avatar de DC
    DC

    Bom artigo. Deixo algumas sugestões:
    1. Usar const em vez de let
    2. Usar request-promise, axios ou fetch com async/await (evitar callbacks)
    3. Usar try/catch com JSON.parse
    4. Colocar uma nota sobre as melhores praticas em relação a api keys (ou qq informacao mais sensivel), recorrendo, por exemplo, a environment variables. (seja pelo SO, ou melhor ainda, usando dotenv)

    1. Avatar de DC
      DC

      Acrescento que a biblioteca request (e maioria delas) tem pode receber opcções no primeiro parametro (objecto) onde se pode colocar a flag json: true, e evita-se ter de usar JSON.parse

      1. Avatar de Marco
        Marco

        coloca aqui uma versão com as tua alterações para o pessoal ver as diferenças.

          1. Avatar de Marco
            Marco

            obrigado, era de valor o pessoal do Pplware aproveitar o teu exemplo e incorporar no artigo.

          2. Avatar de DC
            DC

            Isto é como tudo, há N formas de resolver o mesmo problema. O código do artigo funciona, apenas apresentei sugestões, umas mais relevantes que outras.
            Eu quando comecei a aprender nodejs também não seguia todas as “melhores práticas” mas acho que aqui tem vários pormenores que não ajudam: usar let onde devia ser const, parse desnecessário e apikey no meio do código.
            Este ultimo ponto é bastante importante porque é assim que muitos destes dados vão parar a quem não devia; o pessoal pega neste código, cria um repositório publico no github e lá se foi a apikey.