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);