Curs Javascript

- 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
Clic pe tag-ul HTML care afiseaza o linie orizontala.
<br> <em> <hr>
Continut ...
<hr />
Alt continut sub linie ...
Care proprietate CSS defineste culoarea textului?
font-style font-variant color
h2 {
  color: #cbdafb;
}
Clic pe functia care cauta daca un anume caracter sau text e intr-un sir.
indexOf() toString() split()
var str = "Web courses - http://CoursesWeb.net/";
if(str.indexOf("http://") == -1) alert("http:// nu e in sir");
else alert("http:// e in sir");
Care e functia ce imparte un sir in parti de siruri intr-un array, pe baza unui separator?
array_merge() explode() implode()
$str = "mar,banana,pepene,para";
$arr = explode(",", $str);
var_export($arr);      // array (0=>"mar", 1=>"banana", 2=>"pepene", 3=>"para")
Indicati asocierea corecta: "luna-anotimp".
April - Autumn October - Spring July - Summer
July is a beautiful summer month.
- Iulie este o frumoasa luna de vara.
Indicati asocierea corecta: "luna-anotimp".
Octubre - Primavera Julio - Verano Abril - OtoƱo
Julio es un hermoso mes de verano.
- Iulie este o frumoasa luna de vara.
Node.js Lucru cu Fisiere

Last accessed pages

  1. Prezentul simplu - Exercitii si teste incepatori (69841)
  2. Verbe - Exercitii si teste engleza incepatori (26921)
  3. Exercitii engleza - English Tests and exercises - Grammar (115488)
  4. Poezii pentru copii, in engleza (40754)
  5. Scriere cod CSS (5789)

Popular pages this month

  1. Cursuri si Tutoriale: Engleza, Spaniola, HTML, CSS, Php-Mysql, JavaScript, Ajax (536)
  2. Coduri pt culori (334)
  3. Gramatica limbii engleze - Prezentare Generala (254)
  4. Cursuri limba engleza gratuite si lectii online (237)
  5. Gramatica limbii spaniole. Indrumator si prezentare generala (203)