Crie um aplicativo da Web Hapi.js usando o Node.js no Ubuntu 16.04

O Hapi.js é uma estrutura rica, robusta e poderosa do Node.js. projetada para criar aplicativos da Web no ecossistema do Node.js. Seu design direto facilita a introdução. O Hapi usa muitos dos recursos mais recentes do JavaScript ES6, como as promessas do ES6. Para aqueles que já usaram o Express, o Hapi permite que você experimente algo novo e experimente todos os recursos mais recentes do JavaScript.

Neste tutorial, nosso objetivo será configurar uma página da Web básica do Hapi.j, hospedada no nosso Vultr VPS, no Ubuntu 16.04 LTS. Para aqueles que têm um domínio para o site, usaremos um proxy reverso para vincular nosso domínio ao site. Por fim, aprenderemos como gerenciá-lo com um gerente de processos. Agora que resolvemos isso, vamos começar.

Instalando o Node.js

Nós precisaremos instalar o Node.js. Para fazer isso no Ubuntu 16.04 LTS, siga estas instruções.

Adicionando o Repositório

Nós precisaremos adicionar o repositório NodeSource APT, que contém a versão mais recente do NTS.js. do LTS.

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs

Estamos fazendo o download de um script que usaremos para adicionar o repositório à nossa lista de fontes, além de instalar o Node.js a partir do repositório do NodeSource.

Instalando ferramentas de construção

Além de instalar o próprio Node.js., também precisamos instalar algumas ferramentas de compilação necessárias, que ajudarão na criação de quaisquer módulos que possamos instalar.

sudo apt-get install -y build-essential

Isso simplesmente baixa e instala as ferramentas de construção do repositório.

Configurando o Diretório do Aplicativo

É uma boa prática designar uma pasta que usaremos para nosso aplicativo, que conterá todos os dados de nosso aplicativo, como arquivos de configuração e scripts de inicialização. Crie uma pasta, nomeando-a como desejar. Para o propósito deste tutorial, presumo que você o nomeou site.

mkdir site

Depois de criar a pasta, agora podemos mudar para ela. Certifique-se de estar no diretório que você acabou de criar, inicie o assistente de pacote do NPM.

npm init

Ele solicitará que você insira algumas coisas diferentes, como nome do aplicativo, arquivo inicial, licença e assim por diante. Na maioria dos campos, você pode deixar o padrão, exceto os campos mais óbvios, como o nome do seu aplicativo. No final, ficará assim:

{
  "name": "site",
  "version": "1.0.0",
  "description": "Hapi.js site",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "rich",
  "license": "MIT"
}

Quando estiver satisfeito com o resultado, clique ENTERpara salvar o arquivo.

Instalando o Hapi.js

Agora que seu diretório foi construído com sucesso, agora podemos instalar o Hapi.js. Como mencionado anteriormente, utilizaremos o NPM para baixar o Hapi.js, bem como suas dependências, para o nosso projeto. No diretório do projeto, execute o seguinte.

npm install hapi.js

Isso baixa o Hapi.js do NPM e o instala em nosso diretório de projetos. Na mesma execução, todas as dependências nas quais o Hapi.js pode depender também são baixadas para nossa conveniência.

Configurando nosso aplicativo de amostra

Agora é hora de configurar nosso arquivo de aplicativo base Hapi.js. Isso conterá todo o nosso código para o aplicativo. Mais adiante, podemos expandir nosso código de aplicativo e adicionar mais coisas, como acharmos melhor.

Em seguida, criaremos nosso arquivo inicial. Consulte a mainseção do seu package.jsonarquivo para determinar exatamente como nomear o arquivo. Como usei o esquema de nomenclatura padrão, nosso arquivo será chamado index.js.

nano index.js

Quando estiver dentro do nano editor de texto, crie o código do aplicativo base, assim.

const Hapi=require('hapi');
const server=Hapi.server({
    host:'localhost',
    port: 3000
});

server.route({
    method:'GET',
    path:'/',
    handler:((request,h)) => {
        return 'Sample Hapi.js Application';
    }
});
async function start() {

    try {
        await server.start();
    } catch (err) {
        console.log(err);
        process.exit(1);
    }
    console.log(`Our server is running! ${server.info.uri}`);
};

start();

Primeiro, importamos o módulo Hapi. Em seguida, inicializamos nosso construtor de servidor, que contém o host em que queremos executar o servidor, bem como a porta, que é 3000para este tutorial. Em seguida, configuramos um roteador básico, o que indica que sempre que alguém visita o site, ele é recebido com uma mensagem simples. Para completar, temos uma função assíncrona, para iniciar nosso servidor, que fará o logon no console em que nosso servidor está executando. Quando terminar, salve e feche o arquivo ( CTRL+ X)

Agora que nosso arquivo principal está configurado, estamos prontos para iniciar nosso aplicativo.

node index.js

Se você vir " Our server is running!" no console, o servidor foi iniciado com sucesso.

Instale o Nginx

Como o Nginx está disponível nos repositórios padrão do Ubuntu, a instalação é simples. Simplesmente atualize suas listas de pacotes e instale-as.

sudo apt update
sudo apt install nginx -y 

Após atualizar as listas de pacotes, o Nginx e suas dependências serão instaladas.

Configurar Nginx

Para o Nginx reverter o proxy do nosso aplicativo, precisamos criar um arquivo de configuração. Este arquivo de configuração conterá informações sobre nosso aplicativo, que o Nginx utilizará para o proxy reverso.

Exclua a configuração padrão criada pelo Nginx, pois a substituiremos pela nossa posteriormente.

sudo rm /etc/nginx/sites-enabled/default

Faça um novo arquivo na sites-availablepasta. Quanto à nomeação, podemos nos ater simplesmente site, por simplicidade.

sudo nano /etc/nginx/sites-available/site

No arquivo, cole o seguinte e salve.

server {
    listen 80;
    location / {
          proxy_set_header X-Real-IP 
          $remote_addr;
          proxy_set_header 
          X-Forwarded-For 
          $proxy_add_x_forwarded_for;
          proxy_set_header Host 
          $http_host;
          proxy_set_header 
        X-NginX-Proxy true; proxy_pass 
       http://127.0.0.1:3000/;
    proxy_redirect off;
    proxy_http_version 1.1;
    proxy_set_header Upgrade 
     $http_upgrade;
    proxy_set_header Connection 
    "upgrade";
    proxy_redirect off;
    proxy_set_header 
   X-Forwarded-Proto $scheme;
    }
}

Neste arquivo, estamos dizendo ao Nginx para ouvir na porta 80. Também estamos definindo a passagem do proxy para o localhostendereço e a porta 3000, que é a mesma porta que nosso aplicativo Hapi.

Agora você pode navegar de volta para o diretório do aplicativo e iniciar o site. Depois que o site for iniciado, basta navegar para http://yourdomain.comou http://youripe você verá o texto " Hello World".

Instale o PM2

O PM2 pode ser encontrado no repositório do NPM e você pode instalá-lo globalmente para ser acessível de qualquer lugar, como esse.

sudo npm install pm2 -g

O -gsinalizador no final indica que queremos instalar o módulo na pasta global modules, o que nos permitirá usá-lo fora do diretório do projeto. Isso é usado para que nosso projeto se comporte como um aplicativo de sistema normal.

Iniciando nosso aplicativo com PM2

Depois de instalar o PM2, volte ao diretório do projeto. A sintaxe para iniciar nosso aplicativo será um pouco diferente agora. É assim que vamos fazer com o PM2.

pm2 start index.js --name site

Utilizamos a função de início do PM2, que basicamente cria um perfil para o nosso aplicativo, sob o nome site. Depois de executar esse comando, seu site será iniciado, mas você notará que os logs não serão exibidos. Isso ocorre porque a maneira como vemos os logs agora é diferente.

pm2 logs site

Você pode até especificar quantas linhas de logs você deseja ver, com o --linesargumento

Conclusão

Você configurou com êxito um servidor da Web Hapi.js., fez o proxy reverso com o Nginx e aprendeu a gerenciá-lo melhor com o PM2. Com esse conhecimento, você pode expandir ainda mais este tutorial e criar um aplicativo Hapi.js. muito avançado. Para saber mais sobre as possibilidades da Hapi, visite a documentação oficial . Se você quiser saber mais sobre as possibilidades do PM2, consulte o guia de início rápido .



A IA pode lutar contra o aumento do número de ataques de ransomware

A IA pode lutar contra o aumento do número de ataques de ransomware

Os ataques de ransomware estão aumentando, mas a IA pode ajudar a lidar com os vírus de computador mais recentes? AI é a resposta? Leia aqui para saber se é AI boone ou bane

ReactOS: Este é o futuro do Windows?

ReactOS: Este é o futuro do Windows?

ReactOS, um sistema operacional de código aberto e gratuito está aqui com a versão mais recente. Será que ela pode atender às necessidades dos usuários modernos do Windows e derrubar a Microsoft? Vamos descobrir mais sobre esse estilo antigo, mas uma experiência de sistema operacional mais recente.

Fique conectado por meio do aplicativo WhatsApp Desktop 24 * 7

Fique conectado por meio do aplicativo WhatsApp Desktop 24 * 7

O Whatsapp finalmente lançou o aplicativo Desktop para usuários de Mac e Windows. Agora você pode acessar o Whatsapp do Windows ou Mac facilmente. Disponível para Windows 8+ e Mac OS 10.9+

Como a IA pode levar a automação de processos ao próximo nível?

Como a IA pode levar a automação de processos ao próximo nível?

Leia isto para saber como a Inteligência Artificial está se tornando popular entre as empresas de pequena escala e como está aumentando as probabilidades de fazê-las crescer e dar vantagem a seus concorrentes.

A atualização do suplemento do macOS Catalina 10.15.4 está causando mais problemas do que resolvendo

A atualização do suplemento do macOS Catalina 10.15.4 está causando mais problemas do que resolvendo

Recentemente, a Apple lançou o macOS Catalina 10.15.4, uma atualização suplementar para corrigir problemas, mas parece que a atualização está causando mais problemas, levando ao bloqueio de máquinas mac. Leia este artigo para saber mais

13 Ferramentas de Extração de Dados Comerciais de Big Data

13 Ferramentas de Extração de Dados Comerciais de Big Data

13 Ferramentas de Extração de Dados Comerciais de Big Data

O que é um sistema de arquivos de registro no diário e como ele funciona?

O que é um sistema de arquivos de registro no diário e como ele funciona?

Nosso computador armazena todos os dados de uma maneira organizada conhecida como sistema de arquivos Journaling. É um método eficiente que permite ao computador pesquisar e exibir arquivos assim que você clicar em search.https: //wethegeek.com/? P = 94116 & preview = true

Singularidade tecnológica: um futuro distante da civilização humana?

Singularidade tecnológica: um futuro distante da civilização humana?

À medida que a ciência evolui em um ritmo rápido, assumindo muitos de nossos esforços, os riscos de nos sujeitarmos a uma singularidade inexplicável também aumentam. Leia, o que a singularidade pode significar para nós.

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

O impacto da inteligência artificial na saúde 2021

O impacto da inteligência artificial na saúde 2021

A IA na área da saúde deu grandes saltos nas últimas décadas. Portanto, o futuro da IA ​​na área da saúde ainda está crescendo dia a dia.