Dino Geek, cerca di aiutarti

Come incapsulare i dati in Node.js?


In Node.js, l’incapsulamento dei dati può essere raggiunto attraverso l’uso di moduli e classi.

I moduli permettono di raggruppare codice correlato in un unico file, che può essere importato dove è necessario. Un modulo può esporre funzioni o variabili al codice che lo importa attraverso l’uso dell’oggetto `module.exports` o `exports`.

Ad esempio, potremmo creare un modulo ‘user.js’:

```
let data = { name: ‘Nome’, email: ‘Email‘
};

function setName(newName) { data.name = newName;
}

function setEmail(newEmail) { data.email = newEmail;
}

module.exports = { setName, setEmail
};
```

Poi possiamo importare e usare il modulo ‘user.js’ in un altro file:

```
const user = require(‘./user.js’);

user.setName(‘Nuovo Nome’);
user.setEmail(‘nuovo@email.com’);
```

Le classi offrono un altro livello di incapsulamento, permettendo l’uso di modificatori di accesso come `public`, `private` e `protected`. Possiamo definire campi dati come `private` per impedire l’accesso diretto da fuori la classe.

```
class User { #name; #email;

constructor(name, email) { this.#name = name; this.#email = email; } setName(newName) { this.#name = newName; } setEmail(newEmail) { this.#email = newEmail; } }

module.exports = User;
```

Questo garantisce che i dati siano accessibili solo attraverso i metodi della classe. È importante notare che l’incapsulamento attraverso le classi è supportato solo in Node.js versione 12 o superiore.


Genera semplicemente articoli per ottimizzare il tuo SEO
Genera semplicemente articoli per ottimizzare il tuo SEO





DinoGeek offre articoli semplici su tecnologie complesse

Vuoi essere citato in questo articolo? È molto semplice, contattaci a dino@eiki.fr

CSS | NodeJS | DNS | DMARC | MAPI | NNTP | htaccess | PHP | HTTPS | Drupal | WEB3 | LLM | Wordpress | TLD | Nome dominio | IMAP | TCP | NFT | MariaDB | FTP | Zigbee | NMAP | SNMP | SEO | E-Mail | LXC | HTTP | MangoDB | SFTP | RAG | SSH | HTML | ChatGPT API | OSPF | JavaScript | Docker | OpenVZ | ChatGPT | VPS | ZIMBRA | SPF | UDP | Joomla | IPV6 | BGP | Django | Reactjs | DKIM | VMWare | RSYNC | Python | TFTP | Webdav | FAAS | Apache | IPV4 | LDAP | POP3 | SMTP

| Whispers of love (API) | Déclaration d'Amour |






Avviso Legale / Condizioni Generali di Utilizzo