დღევანდელ გაკვეთილში ვისწავლით თუ როგორ შეიძლება nodejs აპლიკაციის დახმარებით ვიმუშაოთ ფაილებთან
nodejs-ის fs ჩაშენებული მოდული, საშუალებას გვაძლევს მოვახდინოთ შემდეგი ტიპის მანიპულაციები ფაილებზე
ნოუდი ფაილებთან მუშაობის ორ ვერსიას გვთავაზობს პირველი არის ფრომისებზე დაფუძნებული ვერსია, რომელიც მდებარეობს ‘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 მოდულის მეთოდებისა, სასურველია გადახედოთ ოფიციალურ დოკუმენტაციას.
შეისწავლეთ ვებდეველოპმენტის ენები სრულიად უფასოდ, ისეთები როგორებიცაა Javascript, HTML, CSS და კიდევ სხვა მრავალი ენა
ქვემოთ მოცემულია უახლესი 3 ბლოგი პროგრამირების თემატიკასთან დაკავშირებით