Rumah >hujung hadapan web >tutorial js >Sistem Fail: Modul `fs` Node.js

Sistem Fail: Modul `fs` Node.js

WBOY
WBOYasal
2024-08-24 15:01:33462semak imbas

File System: Node.js `fs` Module

Modul fs (Sistem Fail) dalam Node.js ialah alat yang berkuasa untuk bekerja dengan sistem fail, membolehkan anda berinteraksi dengan fail dan direktori pada pelayan anda. Ia terbina dalam Node.js, jadi anda tidak perlu memasang apa-apa tambahan untuk menggunakannya. Mari kita terokai cara fs berfungsi dan fungsi utamanya.

1. Apakah Modul fs?

Modul fs menyediakan API untuk berinteraksi dengan sistem fail dengan cara yang dimodelkan rapat di sekitar fungsi POSIX standard. Modul ini digunakan untuk tugas seperti membaca dari dan menulis ke fail, mencipta direktori dan banyak lagi.

2. Persediaan Asas

Untuk menggunakan modul fs, anda perlu memerlukannya pada permulaan skrip Node.js anda:

const fs = require('fs');

3. Membaca Fail

Terdapat dua cara utama untuk membaca fail: tak segerak dan segerak.

Bacaan Asynchronous

Kaedah ini tidak menyekat, bermakna ia tidak akan menghentikan pelaksanaan program anda semasa ia membaca fail.

fs.readFile('example.txt', 'utf8', (err, data) => {
    if (err) {
        console.error(err);
        return;
    }
    console.log(data);
});
  • 'example.txt': Fail yang anda mahu baca.
  • 'utf8': Menentukan pengekodan yang akan digunakan.
  • Fungsi Panggilan Balik: Mengendalikan ralat dan data fail.

Bacaan Segerak

Kaedah ini menyekat, bermakna ia akan menghentikan pelaksanaan program anda sehingga fail dibaca.

try {
    const data = fs.readFileSync('example.txt', 'utf8');
    console.log(data);
} catch (err) {
    console.error(err);
}

4. Menulis Fail

Sama seperti membaca fail, menulis juga boleh dilakukan secara tak segerak atau serentak.

Penulisan Asynchronous

fs.writeFile('example.txt', 'Hello, World!', (err) => {
    if (err) {
        console.error(err);
        return;
    }
    console.log('File has been saved!');
});

Penulisan Segerak

try {
    fs.writeFileSync('example.txt', 'Hello, World!');
    console.log('File has been saved!');
} catch (err) {
    console.error(err);
}

5. Menambah pada Fail

Jika anda ingin menambah kandungan pada fail sedia ada tanpa menimpanya, gunakan kaedah appendFile.

Penambahan Asynchronous

fs.appendFile('example.txt', '\nAppended Content', (err) => {
    if (err) {
        console.error(err);
        return;
    }
    console.log('Content has been appended!');
});

Lampiran Segerak

try {
    fs.appendFileSync('example.txt', '\nAppended Content');
    console.log('Content has been appended!');
} catch (err) {
    console.error(err);
}

6. Memadam Fail

Untuk memadamkan fail, gunakan kaedah nyahpaut.

Pemadaman Asynchronous

fs.unlink('example.txt', (err) => {
    if (err) {
        console.error(err);
        return;
    }
    console.log('File deleted!');
});

Pemadaman Segerak

try {
    fs.unlinkSync('example.txt');
    console.log('File deleted!');
} catch (err) {
    console.error(err);
}

7. Bekerja dengan Direktori

Mencipta Direktori

fs.mkdir('newDir', { recursive: true }, (err) => {
    if (err) {
        console.error(err);
        return;
    }
    console.log('Directory created!');
});

Membaca Direktori

fs.readdir('newDir', (err, files) => {
    if (err) {
        console.error(err);
        return;
    }
    console.log('Files in directory:', files);
});

Memadamkan Direktori

fs.rmdir('newDir', { recursive: true }, (err) => {
    if (err) {
        console.error(err);
        return;
    }
    console.log('Directory deleted!');
});

8. Menonton Fail

Anda boleh melihat perubahan dalam fail menggunakan kaedah fs.watch:

fs.watch('example.txt', (eventType, filename) => {
    if (filename) {
        console.log(`${filename} file Changed!`);
    }
});

9. Bekerja dengan Strim

Node.js menyediakan strim fs untuk mengendalikan fail besar yang mungkin tidak sesuai dengan memori.

Membaca dengan Strim

const readStream = fs.createReadStream('example.txt', 'utf8');
readStream.on('data', (chunk) => {
    console.log(chunk);
});

Menulis dengan Strim

const writeStream = fs.createWriteStream('example.txt');
writeStream.write('Hello, ');
writeStream.write('World!');
writeStream.end();

10. Menyalin Fail

Node.js menyediakan kaedah mudah untuk menyalin fail:

fs.copyFile('source.txt', 'destination.txt', (err) => {
    if (err) {
        console.error(err);
        return;
    }
    console.log('File copied successfully!');
});

11. Dijanjikan fs

Modul fs juga mempunyai kaedah berasaskan janji, menjadikannya lebih mudah untuk berfungsi dengan ciri JavaScript moden seperti async/menunggu.

const fsPromises = require('fs').promises;

async function readFile() {
    try {
        const data = await fsPromises.readFile('example.txt', 'utf8');
        console.log(data);
    } catch (err) {
        console.error(err);
    }
}

readFile();

12. Kes Penggunaan Praktikal

  • Fail Konfigurasi: Baca atau tulis fail konfigurasi (cth., fail JSON) untuk menyimpan tetapan.
  • Fail Log: Tambahkan pada fail log untuk menjejaki acara aplikasi.
  • Muat Naik Fail: Simpan dan dapatkan semula fail yang dimuat naik.
  • Pemprosesan Data: Baca, proses dan tulis set data yang besar dengan cekap menggunakan strim.

13. Pengendalian Ralat dan Amalan Terbaik

  • Sentiasa mengendalikan ralat dalam fungsi panggil balik atau gunakan blok cuba tangkap dengan kod segerak.
  • Gunakan kaedah tak segerak untuk prestasi yang lebih baik dalam kebanyakan kes.
  • Pertimbangkan untuk menggunakan fs.promises untuk kod yang lebih bersih dan moden.
  • Berhati-hati dengan kaedah segerak kerana kaedah ini boleh menyekat gelung acara.
  • Gunakan fs.constants untuk bendera sistem fail (cth., fs.constants.O_RDONLY untuk akses baca sahaja).

14. Pertimbangan Keselamatan

  • Sahkan dan bersihkan laluan fail untuk mengelakkan serangan lintasan direktori.
  • Berhati-hati apabila bekerja dengan nama fail atau laluan yang dibekalkan pengguna.
  • Gunakan kebenaran fail yang sesuai semasa membuat atau mengubah suai fail dan direktori.

15. Kesimpulan

Modul fs adalah serba boleh dan penting untuk mana-mana aplikasi Node.js yang perlu berinteraksi dengan sistem fail. Dengan memahami pelbagai kaedahnya, mengendalikan strim dengan cekap dan menggunakan amalan terbaik, anda akan dilengkapi dengan baik untuk mengurus operasi fail dalam Node.js dengan berkesan dan selamat.

Ingat untuk merujuk dokumentasi rasmi Node.js untuk mendapatkan maklumat terkini dan ciri tambahan modul fs.

Atas ialah kandungan terperinci Sistem Fail: Modul `fs` Node.js. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn