07/09/2018, 10:37

Ghi dữ liệu lên file sử dụng Node.js

Trong bài học trước bạn đã được làm quen với cách đọc dữ liệu từ file sử dụng hai phương thức đọc đồng bộ và đọc không đồng bộ. Trong bài viết này tôi sẽ hướng dẫn bạn cách ghi dữ liệu lên trên file sử dụng hai phương thức ghi đồng bộ và ghi không đồng bộ. Tương tự như cách đọc dữ liệu, Node.js ...

Trong bài học trước bạn đã được làm quen với cách đọc dữ liệu từ file sử dụng hai phương thức đọc đồng bộ và đọc không đồng bộ. Trong bài viết này tôi sẽ hướng dẫn bạn cách ghi dữ liệu lên trên file sử dụng hai phương thức ghi đồng bộ và ghi không đồng bộ.

Tương tự như cách đọc dữ liệu, Node.js cung cấp cho bạn 2 cách khác nhau để ghi dữ liệu lên file đó là: Ghi đồng bộ và ghi không đồng bộ. Tạo một file write_async.js với nội dung như sau:

Ghi Đồng Bộ

Dưới đây là một ví dụ về ghi đồng bộ dữ liệu lên trên file. Tạo một file write_sync.js với nội dung như sau:

var fs = require('fs');
var result = fs.writeFileSync('Xin chào', 'message.txt', 'utf-8');
console.log(result);
console.log('Bye');

Khi chạy file trên và kiểm tra trên thư mục chứa nó bạn sẽ thấy có một file mới với tên gọi message.txt được tạo ra với dòng chữ Xin Chào trong đó. Ngoài ra bạn cũng sẽ thấy trên màn hình Command Prompt dòng thông báo như dưới đây:

Node.js ghi dữ liệu đồng bộ

Hamfs.writeFileSync luôn trả về giá trị là undefined ngay cả khi xuất hiện lỗi trong quá trình viết lên file (ví dụ như khi bạn gõ sai địa chỉ thư mục hoặc dữ liệu quá lớn khiến tràn bộ nhớ..)

Ghi Không Đồng Bộ

Trong cách ghi dữ liệu này, quá trình ghi dữ liệu sẽ được thực thi mà không cản trở việc các câu lệnh sau đó tiếp tục được thực thi.

var fs = require('fs');
fs.writeFile('message.txt', 'Xin chào', function (err) {
  if (err) throw err;
  console.log('Done!');
});
console.log('Bye');

Với cách ghi này, bạn sẽ cần truyền vào method writeFile 2 đối số. Đối số đầu là tên file, đối số thứ 2 là nội dung sẽ được ghi lên file và đối số thứ 3 là hàm callback, hàm này được gọi khi quá trình viết dữ liệu hoàn tất.

Dưới đây là kết quả khi thực thi chương trình trên:

Node.js Ghi Dữ Liệu Không Đồng Bộ

0