Node

Projeto - App Local para gerenciamento do uso da memória RAM

Criação do servidor em Node puro (server.js)


                            // Importações
                            const http   = require('http');            // Módulo "http" nativo do node 
                            const status = require('./pcRamUsage.js'); // App criada 
                            
                            // Configurações Globais
                            const host = 'http://localhost';
                            const port = 3000;
                            
                            // Criação do servidor HTTP
                            http.createServer( (req, res) => {
                                    let url = req.url;
                                    if(url === '/') { 
                                        res.end('<h1>Bem vindo!</h1>');
                                    } else if(url === '/status') {
                                        res.end( JSON.stringify(status, null, 2) ); 
                                    } else {
                                        res.end('<h1>Rota: ' + url + ' não permitida!</h1>');
                                    }
                                })
                                
                            // Define um escutador de requisições HTTP para o servidor.
                            .listen(port, () => console.log(`Sever is running in ${host}:${port}`)); 
                        
localhost é o padrão quando o Host não for especificado.
Para subir o servidor basta executar o comando:

                            node server.js
                        
Para testar a app basta acessar a URL: http://localhost:3000

Criação da App para gerenciamento do uso de memória (pcRamUsage.js)


                            // The os module provides operating system-related utility methods and properties.
                            const os = require('os');  // ES6 Module: import os from 'os';  

                            // Método nativo, recebe: uma função e um tempo de espera em milisegundos.
                            setInterval( () => {

                                // Desestruturação do objeto "os", que é o módulo importado
                                const { arch, platform, totalmem, freemem } = os;

                                // totalmenm: Returns the total amount of system memory in bytes as an integer.
                                // freemem: Returns the total amount of free system memory in bytes as an integer.
                                const tRam = totalmem() / 1024 / 1024;   // Transforma bytes em megabytes
                                const fRam = freemem() / 1024 / 1024;    // Transforma bytes em megabytes
                                const usage = (fRam / tRam) * 100;       // Calcula o uso da memória em percentual

                                // Cria um objeto com as propriedades do objeto "os"
                                const status = {
                                    OS: platform(),
                                    ARCH: arch(),
                                    TOTAL_MEMORY: `${parseInt(tRam)}: MB`,  
                                    FREE_MEMORY: `${parseInt(fRam)}: MB`,
                                    USAGE: `${ usage.toFixed(2) }: %`   
                                };

                                // Imprimi no console o objeto "status"
                                console.clear();
                                console.table(status); 

                                // Exportando a app
                                exports.status = status;
                            }, 1000);