Hướng dẫn đọc file 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é.

Hướng dẫn đọc file trong nodejs

Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

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

Hướng dẫn đọc file trong nodejs

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

Hướng dẫn đọc file trong nodejs

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

Hướng dẫn đọc file trong nodejs

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

Hướng dẫn đọc file trong nodejs

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

Trong Node.js, I / O tệp được cung cấp bởi các trình bao bọc đơn giản xung quanh các chức năng POSIX tiêu chuẩn. Mô-đun Hệ thống Tệp Node (fs) có thể được nhập bằng cú pháp sau:

Các bài viết liên quan:

  • Streams trong Node.js
  • Nodejs là gì? Tại sao nên sử dụng Nodejs
  • Prediction sử dụng linear class
  • Async trong ngôn ngữ Dart
  • Sử dụng process trong Node.js

Cú pháp:

var fs = require("fs")  

Node.js FS đọc File

Mọi phương thức trong mô-đun fs đều có dạng đồng bộ và không đồng bộ.

Các phương thức không đồng bộ nhận tham số cuối cùng làm hàm gọi lại hàm hoàn thành. Phương thức không đồng bộ được ưu tiên hơn phương thức đồng bộ vì nó không bao giờ chặn việc thực thi chương trình khi phương thức đồng bộ chặn.

Hãy lấy một ví dụ:

Tạo một tệp văn bản có tên “input.txt” có nội dung như sau.

File: input.txt

Chúng tôi là một trong những trang web hướng dẫn trực tuyến tốt nhất để tìm hiểu các công nghệ khác nhau một cách rất dễ dàng và hiệu quả.