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:
Bài viết này được đăng tại [free tuts .net]
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é.