Module FS trong NodeJS

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ả:

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ả:

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ả:

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ả:

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é.

Tài liệu chỉ mang tính chất tham khảo, mình không cam kết các nội dung trên website, vì vậy không được sử dụng để in ấn hay kinh doanh.
Hãy để lại link bài viết gốc khi chia sẻ bài viết này, mình sẽ report DMCA với những website vi phạm nội dung bản quyền mà mình đã đưa ra.

Nguồn: freetuts.net

Profile photo of adminTheHalfHeart

TheHalfHeart

Có sở thích viết tuts nên đã từng tham gia viết ở một số diễn đàn, đến năm 2014 mới có điều kiện sáng lập ra freetuts.net. Sinh năm 90 và có 1 vợ 2 con, thích ca hát và lập trình.

ĐĂNG BÌNH LUẬN: Đăng câu hỏi trên Facebook để được hỗ trợ nhanh nhất.