Leggere file TOML in Node.js

Mattepuffo's logo
Leggere file TOML in Node.js

Leggere file TOML in Node.js

In questo articolo vediamo come leggere un file TOML in Node.js.

Useremo la libreria toml.

La possiamo installare con npm:

npm install toml

Questo il file:

title = "Test TOML"
version = "1.0.0"

[database]
host = "localhost"
port = 5432
username = "root"
password = "password"
databases = ["db_test"]
pool_size = 10
ssl_enabled = true

[server]
host = "0.0.0.0"
port = 8080
debug = false
allowed_hosts = ["*"]

[logging]
level = "INFO"
format = "%(asctime)s - %(levelname)s - %(message)s"
handlers = ["console", "file"]

[cache]
enabled = true
ttl = 3600
max_size = 1000

[features]
enable_api = true
rate_limit = 100

Qui sotto un pò di codice:

const fs = require('fs');
const toml = require('toml');

const configFile = fs.readFileSync('test.toml', 'utf-8');

const config = toml.parse(configFile);

console.log('=== Informazioni generali ===');
console.log('Titolo:', config.title);
console.log('Versione:', config.version);

console.log('\n=== Database ===');
console.log('Host:', config.database.host);
console.log('Porta:', config.database.port);
console.log('Username:', config.database.username);
console.log('Database:', config.database.databases);
console.log('Pool size:', config.database.pool_size);
console.log('SSL abilitato:', config.database.ssl_enabled);

console.log('\n=== Server ===');
console.log('Host:', config.server.host);
console.log('Porta:', config.server.port);
console.log('Debug:', config.server.debug);
console.log('Host consentiti:', config.server.allowed_hosts);

console.log('\n=== Logging ===');
console.log('Livello:', config.logging.level);
console.log('Formato:', config.logging.format);
console.log('Handlers:', config.logging.handlers);

console.log('\n=== Cache ===');
console.log('Abilitata:', config.cache.enabled);
console.log('TTL:', config.cache.ttl);
console.log('Dimensione massima:', config.cache.max_size);

console.log('\n=== Features ===');
console.log('API abilitata:', config.features.enable_api);
console.log('Rate limit:', config.features.rate_limit);

try {
  const safeConfig = toml.parse(configFile);

  const dbConnection = {
    host: safeConfig.database.host,
    port: safeConfig.database.port,
    user: safeConfig.database.username,
    password: safeConfig.database.password,
    database: safeConfig.database.databases[0]
  };

  console.log('\n=== Connessione DB configurata ===');
  console.log(dbConnection);

} catch (error) {
  console.error('Errore nel parsing del file TOML:', error.message);
}

Enjoy!


Condividi

Commentami!