Node.js là một môi trường chạy JavaScript phía máy chủ, nổi bật với khả năng xử lý I/O bất đồng bộ hiệu quả. Một trong những module cốt lõi mà Node.js cung cấp là fs (File System), cho phép bạn đọc, ghi, cập nhật và xóa file một cách dễ dàng.
Trong bài viết này, chúng ta sẽ cùng tìm hiểu cách sử dụng module fs để thao tác với hệ thống file, cả ở dạng đồng bộ (sync) lẫn bất đồng bộ (async).

1. Import module fs
const fs = require(‘fs’);
2. Đọc file
3. Đọc bất đồng bộ (fs.readFile)
fs.readFile(‘example.txt’, ‘utf8’, (err, data) => {
if (err) {
console.error(‘Lỗi khi đọc file:’, err);
return;
}
console.log(‘Nội dung file:’, data);
});
4. Đọc đồng bộ (fs.readFileSync)
try {
const data = fs.readFileSync(‘example.txt’, ‘utf8’);
console.log(‘Nội dung file:’, data);
} catch (err) {
console.error(‘Lỗi:’, err);
}
5. Ghi file
6. Ghi bất đồng bộ (fs.writeFile)
fs.writeFile(‘output.txt’, ‘Hello, Node.js!’, (err) => {
if (err) {
console.error(‘Lỗi khi ghi file:’, err);
return;
}
console.log(‘Ghi file thành công!’);
});
6. Ghi đồng bộ (fs.writeFileSync)
try {
fs.writeFileSync(‘output.txt’, ‘Hello again!’);
console.log(‘Đã ghi file đồng bộ.’);
} catch (err) {
console.error(err);
}
7. Thêm nội dung vào file (appendFile)
fs.appendFile(‘output.txt’, ‘\nDòng mới được thêm vào.’, (err) => {
if (err) throw err;
console.log(‘Đã thêm dòng mới vào file.’);
});
6. Xóa file (fs.unlink)
fs.unlink(‘output.txt’, (err) => {
if (err) {
console.error(‘Không thể xóa file:’, err);
return;
}
console.log(‘File đã được xóa.’);
});
7. Làm việc với thư mục
8. Tạo thư mục
fs.mkdir(‘myFolder’, (err) => {
if (err) throw err;
console.log(‘Đã tạo thư mục myFolder’);
});
9. Đọc thư mục
fs.readdir(‘.’, (err, files) => {
if (err) throw err;
console.log(‘Các file trong thư mục hiện tại:’, files);
});
10. Xóa thư mục
fs.rmdir(‘myFolder’, (err) => {
if (err) throw err;
console.log(‘Đã xóa thư mục.’);
});
11. Đồng bộ vs Bất đồng bộ
- Bất đồng bộ (async) là mặc định và phù hợp cho server xử lý nhiều yêu cầu cùng lúc, tránh “chặn luồng”.
- Đồng bộ (sync) dễ viết và debug hơn, nhưng có thể gây tắc nghẽn nếu xử lý file lớn hoặc trong môi trường production.
Module fs trong Node.js cung cấp công cụ mạnh mẽ để thao tác với hệ thống file. Việc hiểu rõ cách sử dụng fs là một phần quan trọng trong việc phát triển các ứng dụng server-side hiệu quả.
Giảng viên Trần Thị Mỹ Lệ
Bộ môn Công nghệ thông tin
FPT Polytechnic TP HCM

