გამოიწერე YouTube-ის არხიyoutube logoგამოწერა

Node.js-ის fs მოდული

დღევანდელ გაკვეთილში ვისწავლით თუ როგორ შეიძლება nodejs აპლიკაციის დახმარებით ვიმუშაოთ ფაილებთან

nodejs-ის fs ჩაშენებული მოდული, საშუალებას გვაძლევს მოვახდინოთ შემდეგი ტიპის მანიპულაციები ფაილებზე

  • ფაილის წაკითხვა (read files)
  • ფაილის შექმნა (create files)
  • ფაილის განახლება (update files)
  • ფაილის წაშლა (delete files)
  • ფაილის სახელის გადარქმევა (rename files)

ნოუდი ფაილებთან მუშაობის ორ ვერსიას გვთავაზობს პირველი არის ფრომისებზე დაფუძნებული ვერსია, რომელიც მდებარეობს ‘node:fs/promises’ მოდულში.

ფაილის შექმნა/ჩაწერა

ქვემოთ მოცემულ მაგალითებში 1, 2, 3 nodejs-ის დახმარებით შევქმნით text.txt ფაილს, რომელშიც ჩავწერთ “Hello world!!!” ტექსტს ასინქრონულად.

მაგალითი 1:

const fs = require('node:fs/promises');

fs.appendFile('text.txt', 'Hello world!!!')
    .then(() => console.log('success'))
    .catch(err => console.log(err));

ასევე შეგვიძლია გამოვიყენოთ async await სინტაქსიც

მაგალითი 2:

const fs = require('node:fs/promises');

const appendFile = async () => {
    try {
        await fs.appendFile('text.txt', 'Hello world!!!');
        console.log('success');
    }
    catch(err) {
        console.log(err);
    }
}
appendFile();

ხოლო ქოლბექებზე დაფუძნებული ვერსია შემდეგნაირად გამოიყურება

მაგალითი 3:

const fs = require('node:fs');

fs.appendFile('text.asdtxt', 'Hello world!!!', (err) => {
    if (err) throw err;
    console.log('success');
});

ყველა ზემოთ ჩამოთვლილი მაგალითი ერთსა და იმავე ფუნქციონალს ასრულებს. ყველა მაგალითში შეიქმნება ფაილი სახელად text.txt და მასში ჩაემატება ტექსტი ინფორმაციით “Hello world!!!”.

იმ შემთხვევაში თუ ფაილი უკვე არსებობს და ასევე მასში რაიმე ტექსტია ჩაწერილი, ახალი ინფორმაცია დაემატება არსებული ტექსტის ბოლოში.

ასევე იგივე ოპერაციის ჩაწერა შესაძლებელია სინქრონული გზით appendFileSync მეთოდის დახმარებით

მაგალითი:

const fs = require('node:fs');

fs.appendFileSync('text.txt', 'Hello world!!!', (err) => {
    if (err) throw err;
    console.log('success');
});

ზემოთ მოყვანილ მაგალითებში appendFile, როგორც მეთოდის სახელი მიგვანიშნებს, ფაილში ინფორმაცია ჩაემატება არსებული ინფორმაციის შემდგომ, node-ში ასევე გვაქვს writeFile მეთოდი, რომელიც პრინციპებით ზუსტად იგივენაირად მუშაობს, როგორც appendFile, მაგრამ განსხვავდება იმით, რომ როდესაც მოცემულ მეთოდს გამოვიყენებთ ფაილი ყოველთვის ახლიდან ახდენს შექმნას და შესაბამისად თუ ის უკვე არსებობდა რაიმე ინფორმაციით, მას ზედ გადაეწერება ახალი ინფორმაცია.

ფაილის წაკითხვა

მოცემულ პარაგრაფში განვიხილავთ თუ როგორ შეიძლება text.txt ფაილიდან ინფორმაციის ამოკითხვა და კონსოლში მისი დაბეჭვდა.

ფაილის წასაკითხად გამოვიყენებთ readFile მეთოდს.

Callback მაგალითი:

const fs = require('node:fs');

fs.readFile('text.txt', 'utf8', (err, data) => {
    if (err) throw err;
    console.log(data) // Hello world!!!
});

Promise მაგალითი:

const fs = require(‘node:fs/promises’);

fs.readFile('text.txt', 'utf8')
    .then(data => console.log(data))
    .catch(error => console.error(error));

Async await მაგალითი:

const fs = require(‘node:fs/promises’);

const read = async () => {
    try {
        const data = await fs.readFile('text.txt', 'utf8');
        console.log(data);
    }
    catch (err) {
        console.error(err)
    }
}
read();

ფაილის წაშლა

ფაილის წასაშლელად გამოიყენება unlink მეთოდი, რომელსაც გადაეცემა წასაშლელი ფაილის მისამართი.

unlink მეთოდის გამოყენება ასევე შესაძლებელია 3 გზით, Promise, Callback, Async await.

Callback მაგალითი:

const fs = require('node:fs');

fs.unlink('text.txt', (err) => {
    if (err) throw err;
    console.log('file deleted');
});

Promise მაგალითი:

const fs = require('node:fs/promises');

fs.unlink('text.txt')
    .then(() => console.log('file deleted'))
    .catch(err => console.error(err));

Async await მაგალითი:

const fs = require('node:fs/promises');

const deleteFile = async () => {
    try {
        await fs.unlink('text.txt');
        console.log('file deleted');
    } catch (error) {
        console.error(error);
    }
}

deleteFile();

სახელის გადარქმევა

ასევე შესაძლებელია ფაილზე სახელის გადარქმევა/შეცვლა მოცემული ოპერაციისთვის გამოიყენება rename მეთოდი, როგორც ყველა ზემოთ განხილული მეთოდი აქაც შესაძლებლობა გვაქვს სამი ტიპით მოვახდინოთ ოპერაცია, როგორებიცაა callback promises თუ Async await

Callback მაგალითი:

const fs = require('node:fs');

fs.rename('text.txt', 'newText.txt', err => {
    if (err) throw err;
    console.log('file renamed');
});

Promises მაგალითი:

const fs = require('node:fs/promises');

fs.rename('text.txt', 'newText.txt')
    .then(() => console.log('file renamed'))
    .catch(err => console.log(err));

Async await მაგალითი:

const fs = require('node:fs/promises');

const renameFile = async () => {
    try {
        await fs.rename('text.txt', 'newText.txt');
        console.log('file renamed');
    } catch (error) {
        console.error(error);
    }
}

renameFile();

შეჯამება

მიუხედავად იმისა რომ განვიხილეთ fs მოდულის გარკვეული მეთოდები და გამოყენების პირობები, ჩამოთვლილი მეთოდები არასრული ჩამონათვალია fs მოდულის მეთოდებისა, სასურველია გადახედოთ ოფიციალურ დოკუმენტაციას.

კურსში შემავალი თემები

🔗 js🔗 javascript🔗 nodejs

დამატებითი რესურსები

სხვა კატეგორიები

შეისწავლეთ ვებდეველოპმენტის ენები სრულიად უფასოდ, ისეთები როგორებიცაა Javascript, HTML, CSS და კიდევ სხვა მრავალი ენა

ბოლოს დაწერილი ბლოგები პროგრამირებაზე

ქვემოთ მოცემულია უახლესი 3 ბლოგი პროგრამირების თემატიკასთან დაკავშირებით