- Obtine informatii despre fisiere
- Creare si adaugare date in fisier
- Redenumire fisier
- Stergere fisier
- Modulul fs-extra


Modulul Node.js File System (fs) permite sa lucrezi cu fisiere si directoare pe server.
Se foloseste acest cod pentru a include modulul "fs":
const fs = require('fs');

Citire fisier

Pentru a citi un fisier de pe server, poti folosi metoda fs.readFile().
Exemplu: Presupunem ca avem urmatorul fisier HTML, numit "file1.htm" (localizat intr-un folder "test/" in directorul Node.js):
<html>
<body>
<h1>H1 Title Header</h1>
<p>Some text content.</p>
</body>
</html>
Creaza un fisier Node.js care citeste fisierul HTML si returneaza continutul:
//include http and fs modules
const http = require('http');
const fs = require('fs');

//path and file name to read
let file ='./test/file1.htm';

//sets server
const server = http.createServer((req, res)=>{
  //reads the file; if no error, output its content
  fs.readFile(file, (err, data)=>{
    if(err) throw err;
    else {
      res.writeHead(200, {'Content-Type': 'text/html'});
      res.write(data);
    }
    res.end();
  });
});

//listens the server on port 8080
server.listen(8080, ()=> {
  console.log('Server running at //localhost:8080/');
});
Salveaza codul de mai sus intr-un fisier numit "readfile1.js" si initiaza fisierul in interfata command line. Apoi, acceseaza serverul in browserul tau: "//localhost:8080/".
- In browser va aparea o pagina cu continutul fisierului "file1.htm".

Obtine informatii despre fisiere

Pentru a obtine informatii despre un fisier, se foloseste metoda fs.stat().
Exemplu: Obtine un obiect cu informatii despre "file1.htm":
const fs = require('fs');
var file ='./test/file1.htm';

fs.stat(file, (err, stats)=>{
  if(err) throw err;
   console.log(stats);
   
   // Check file type
   console.log('isFile ? '+ stats.isFile());
});
Daca salvezi codul de mai sus intr-un fisier Node.js, de exemplu "fileinfo.js" si rulezi fisierul in interfata command line, vei obtine un rezultat ca si in urmatorul screenshot:
node.js File info
- Parametrul stats al functiei callback este un obiect cu informatii despre fisier (mod, marime, etc.); de asemenea, are metode care pot fi folosite pentru a verifica tipul de fisier.
stats.isFile() - Returneaza true daca este un fisier.
stats.isDirectory() - Returneaza true daca este un director.
stats.isBlockDevice() - Returneaza true daca tipul de fisier este block device.

Creare si adaugare date in fisier

Modulul "fs" are metode pentru a crea noi fisiere sau pentru a adauga date intr-un fisier existent: 1. Daca fisierul specificat exista, metoda fs.appendFile() adauga continutul specificat in acel fisier. Daca fisierul nu exista, fisierul va fi creat.
- Exemplu: Creaza un fisier html folosind metoda appendFile():
const fs = require('fs');
var file ='./test/newfile.htm';
var content ='<div>Html content</div>';

fs.appendFile(file, content, (err)=>{
  if(err) throw err;
  console.log('Saved.');
});
Daca salvezi codul de mai sus intr-un fisier Node.js si apoi il initiezi in interfata command line, un nou fisier "newfile.htm" va fi creat in directorul "test/" (localizat in acelasi director ca si aplicatia Node.js).

2. Metoda fs.open() ia un "flag" ca si al doilea argument, daca flag-ul este "w" pentru "writing" (scriere), fisierul specificat este deschis pentru scriere. Daca fisierul nu exista, un fisier gol este creat.
- Metoda fs.open() poate fi folosita pentru a crea, citi, scrie un fisier, in functie de flag-ul specificat (r, r+, a, w, w+, etc.). Vezi pagina Documentatie fs.open().
- Exemplu: Creaza un fisier html folosing metoda fs.open() si adauga continut in fisierul deschis folosind metoda fs.write():
const fs = require('fs');
var file ='./test/newfile.htm';
var content ='<div>Html content</div>';

fs.open(file, 'w', (err, fd)=>{
  if(err) throw err;
  else {
    console.log('File created');
    fs.write(fd, content, (err)=>{
      if(err) throw err;
      console.log('Data added in file');
      fs.close(fd, (err)=>{ if(err) throw err;});
    });
  }
});

3. Metoda fs.writeFile() inlocuieste fisierul specificat si continutul daca exista. Daca fisierul nu exista, un nou fisier va fi creat care va contine continutul specificat.
- Exemplu: Creaza un nou fisier folosind metoda writeFile():
const fs = require('fs');
var file ='./test/newfile.htm';
var content ='<div>Html content</div>';

fs.writeFile(file, content, (err)=>{
  if(err) throw err;
  console.log('Saved.');
});

Redenumire fisier

Pentru a redenumi un fisier cu modulul File System, se foloseste metoda fs.rename().
Exemplu: Redenumeste "newfile.htm" in "renamedfile.htm":
const fs = require('fs');
var file ='./test/newfile.htm';
var newname ='./test/renamedfile.htm';

fs.rename(file, newname, (err)=>{
  if(err) throw err;
  else console.log('Renamed.');
});

Stergere fisier

Pentru a sterge un fisier cu modulul File System, se foloseste metoda fs.unlink().
Exemplu: Sterge "filename.htm" din directorul "test/":
const fs = require('fs');
var file ='./test/filename.htm';

fs.unlink(file, (err)=>{
  if(err) throw err;
  else console.log('Deleted.');
});

Modulul fs-extra

O alta optiune pentru a lucra cu usurinta cu directoare si fisiere pe server este modulul fs-extra.
fs-extra adauga metode file system care nu sunt incluse in modulul de baza "fs" si adauga suport pt. "promises" la metodele "fs". E un bun inlocuitor pt. "fs".
- Inainte de a folosi modulul "fs-extra", va trebui sa il instalezi. Pentru a instala "fs-extra", ruleaza acest cod in interfata command line:
npm install --save fs-extra
Apoi, poti folosi modulul fs-extra in proiectele tale Node.js, ca un inlocuitor pentru nativul "fs".
const fs = require('fs-extra');
Toate metodele din fs sunt atasate si la fs-extra. Toate metodele "fs" returneaza "promises" daca nu e transmisa o functie callback. Exemplu:
const fs = require('fs-extra')
 
// Async with promises: 
fs.copy('/tmp/file.htm', '/tmp/dirx/file.htm')
.then(() => console.log('success!'))
.catch(err => console.error(err));

// Async with callbacks: 
fs.copy('/tmp/file.htm', '/tmp/dirx/file.htm', err =>{
  if (err) return console.error(err);
  console.log('success!');
});

// Sync: 
try {
  fs.copySync('/tmp/file.htm', '/tmp/dirx/file.htm');
  console.log('success!');
} catch (err){
  console.error(err);
}
- Pentru documentatie vezi fs-extra module page.

Un Test simplu in fiecare zi

HTML
CSS
JavaScript
PHP-MySQL
Engleza
Spaniola
Care tag adauga rand nou in paragraf?
<b> <br> <p>
Prima linie ...<br>
Alta linie...
Ce proprietate CSS seteaza spatiu dintre litere?
text-size word-spacing letter-spacing
#id {
  letter-spacing: 2px;
}
Ce functie obtine accesul la un element HTML cu un anumit ID?
getElementById() getElementsByTagName() createElement()
var elm = document.getElementById("theID");
var content = elm.innerHTML;
alert(content);
Clic pe instructiunea "echo" utilizata corect.
echo "CoursesWeb.net" echo "CoursesWeb.net"; echo ""CoursesWeb.net";
echo "Adresa URL: http://CoursesWeb.net";
Care din urmatoarele expresii cu "paint" (a picta) se foloseste pentru forma Negativa?
will paint not paint have painted
She does not paint that landscape.
- Ea nu picteaza acel peisaj.
Care din urmatoarele expresii cu "cantar" (a canta) se foloseste pentru propozitie Negativa?
ir a cantar cantaba no cantar
Ella no canta esa canciĆ³n.
- Ea nu canta acel cantec.
Node.js Lucru cu Fisiere

Last accessed pages

  1. Flash Chess 3 (3406)
  2. Alphabet and Pronunciation - Alfabetul si pronuntia in limba engleza (8156)
  3. Prepozitii - Exercitii si teste engleza incepatori (959)
  4. English Tests and exercises - Grammar (8008)
  5. Bubbles3 (26268)

Popular pages this month

  1. Bubbles3 (5771)
  2. Gramatica limbii engleze - Prezentare Generala (5048)
  3. Butterfly Kyodai (3340)
  4. Jocuri Mahjong (2312)
  5. Cursuri si Tutoriale: Spaniola, Engleza, HTML, CSS, Php-Mysql, JavaScript, Ajax (2169)