06/04/2021, 14:50

Module FS trong NodeJS - NodeJS căn bản

Module FS (File System) là module dùng để xử lý đọc ghi file trên Server và trong bài này mình sẽ giới thiệu sơ lược cách sử dụng module này nhé. Như ta biết Javascript sử dụng None-blocking IO và cho phép chúng ta xử lý bất đồng bộ và bất đồng bộ (Asynchronous và Synchronous), vì vậy thư viện ...

Module FS (File System) là module dùng để xử lý đọc ghi file trên Server và trong bài này mình sẽ giới thiệu sơ lược cách sử dụng module này nhé.

Như ta biết Javascript sử dụng None-blocking IO và cho phép chúng ta xử lý bất đồng bộ và bất đồng bộ (Asynchronous và Synchronous), vì vậy thư viện File System cho phép chúng ta lựa chọn hai phương thức này để xử lý file. Để hiểu rõ hơn thì bạn có thể xem các ví dụ ở bên dưới.

Để thực hành thì bạn tạo một file tên là myfile.txt nằm cùng cấp với file server.js và file myfile.txt có nội dung là "Nội dung trong file txt".

1. fs.readFile() - đọc file bất đồng bộ

Hàm này có cú pháp như sau:

fs.readFile(file, charset, callback);

Trong đó:

  • file: đường dẫn trỏ tới file cần đọc
  • charset: thiết lập charset
  • callback: hàm gọi khi đọc xong

Ví dụ:

var fs = require('fs');

console.log("START");

var content = fs.readFile("./myfile.txt", 'utf8', function(error, data){
    console.log('Data: ' + data);
    console.log('Error: ' + error);
});

console.log("END");

Kết quả:

readfile nodejs png

Như kết quả các bạn thấy thứ tự in ra màn hình sẽ là START -> END -> Nội dung hàm callback. Vậy hàm này đã xử lý bất đồng bộ vì nếu tuân theo luật trình biên dịch từ trên xuống thì END phải nằm ở dưới cùng.

2. fs.readFileSync() - đọc file đồng bộ

Hàm này có cú pháp như sau:

fs.readFileSync(file, optionsObject);

Trong đó:

  • file: đường dẫn tới file cần đọc
  • optionsObject: Là một đối tượng gồm hai tham số
    • encoding
    • fllag

Ví dụ:

var fs = require('fs');

console.log("START");

var content = fs.readFileSync('./myfile.txt');

console.log("CONTENT: " + content);

console.log("END");

Kết quả:

readfilesync nodejs png

Kết quả đúng với thứ tự là START -> CONTENT -> END. Từ đây các bạn thấy khi xử lý bất đồng bộ thì bắt buộc phải có một hàm callback, còn xử lý đồng bộ thì không cần.

3. fs.writeFile() - ghi file bất đồng bộ

Hàm này có cú pháp như sau:

fs.writeFile(file, data, optionsObject, callback);

Trong đó:

  • file: đường dẫn file cần ghi
  • data: nội dung cần ghi
  • optionsObject: là một đối tượng gồm
    • encoding: mặc định = 'utf8'
    • mode: mặc định = 0o666
    • flag: mặc định = 'w'
  • callback: hàm gọi sau khi ghi xong

Ví dụ:

var fs = require('fs');

console.log("START");

fs.writeFile('./myfile.txt', 'Noi dung file moi cap nhat', {}, function(err){
    console.log('Ghi file xong!');
});

console.log("END");

Kết quả:

writefile nodejs png

4. fs.writeFileSync() - gi file đồng bộ

Hàm này có cú pháp như sau:

fs.writeFileSync(file, data, optionsObject);

Trong đó:

  • file: đường dẫn tới file cần ghi
  • data: nội dung cần ghi
  • optionsObject: là một đối tượng gồm.
    • encoding: mặc định = 'utf8'
    • mode: mặc định = 0o666
    • flag: mặc định = 'w'

Vi dụ:

var fs = require('fs');

console.log("START");

fs.writeFileSync('./myfile.txt', 'Noi dung file moi cap nhat');

console.log("GHI XONG");

console.log("END");

Kết quả:

writefilesync nodejs png

5. Lời kết

Về tài liệu cho module này thì trên trang chủ của NodeJS khá là đầy đủ rồi nên mình không muốn mất nhiều thời gian để trình bày. Nếu bạn muốn tìm hiểu thêm thì hãy vào link này nhé.

Bài tiếp

Hoàng Hải Đăng

24 chủ đề

7226 bài viết

Cùng chủ đề
0