Hướng dẫn Cơ bản về Thao tác Hệ thống Tệp trong Node.js

Một trong những tính năng tích hợp của Node.js là thao tác với hệ thống tệp của hệ điều hành bằng cách sử dụng mô-đun fs. Mô-đun Node.js này chứa nhiều chức năng hữu ích để làm việc với các tệp và thư mục.
Tệp được gọi đơn giản là các đối tượng hoặc khối dữ liệu tồn tại lâu dài thường được lưu trữ trên một phương tiện cứng được gọi là đĩa hoặc bộ nhớ. Tệp có nhiều loại khác nhau, từ tệp văn bản đến tệp hình ảnh, tệp âm thanh và nhiều loại khác.
Vậy, hệ thống tệp là gì và làm thế nào bạn có thể dễ dàng tương tác với hệ thống tệp của hệ điều hành trong Node.js?
Mục Lục
Hệ thống tệp là gì?
Hệ thống tệp xác định cách hệ điều hành có thể xác định, tổ chức, lưu trữ và truy cập tệp, cùng với các hoạt động khác.
Hệ thống tệp của một hệ điều hành cũng thực hiện công việc nhóm các tệp thành các tập hợp được gọi là thư mục hoặc thư mục. Các tệp và thư mục thông thường là những phần phổ biến nhất của hệ thống tệp thường được tương tác với nhiều người khác.
Một số ví dụ về hệ thống tệp bao gồm Hệ thống tệp công nghệ mới (NTFS), Hệ thống tệp UNIX (UFS) và Hệ thống tệp phân cấp (HFS).
Mô-đun Node.js fs là gì?
Node.js fs mô-đun là một thư viện tích hợp được cung cấp bởi Node.js để làm việc với hệ thống tệp của bất kỳ hệ điều hành nào hỗ trợ Node. Các fs mô-đun có thể dễ dàng truy cập và là thư viện truy cập cho các hoạt động tệp như đọc từ tệp hoặc ghi dữ liệu vào tệp trong Node.js.
Nó rất thường được sử dụng với đường dẫn và hệ điều hành các mô-đun để thực hiện các thao tác khác nhau trên tệp. Để sử dụng fs trong các chương trình của bạn, bạn có thể nhập nó vào mã nguồn của mình như được hiển thị trong đoạn mã bên dưới.
const fs = require('fs')
import fs from 'fs'
Mô-đun đường dẫn Node.js là gì?
Bạn có thể sử dụng Node.js đường dẫn mô-đun để thao tác đường dẫn tệp. Nó bao gồm các tiện ích để dễ dàng tương tác với các đường dẫn tệp và thư mục. Sử dụng fs và đường dẫn các mô-đun song song để hoàn thành một nhiệm vụ là thực hành tiêu chuẩn. Điều này là do phần lớn fs chức năng mô-đun phụ thuộc vào đường dẫn đến tệp đích hoặc thư mục để hoạt động.
Bạn có thể nhập đường dẫn mô-đun vào mã của bạn với cú pháp bên dưới:
const path = require('path')
import path from 'path'
Các chức năng phổ biến để truy cập hệ thống tệp trong Node.js
Đây là Node.js được sử dụng phổ biến nhất fs và đường dẫn chức năng mô-đun và cách sử dụng chúng để tương tác với tệp và thư mục.
Làm việc với các đường dẫn
- path.resolve: Đây là hàm để phân giải một đường dẫn từ danh sách các lệnh đường dẫn được truyền dưới dạng tham số. Ví dụ:
path.resolve('home', 'projects', 'web');path.resolve('home/projects/web', '../mobile');
- path.normalize: Các bình thường hóa hàm trả về đường dẫn chính xác và chuẩn hóa từ một đường dẫn đầu vào nhất định. Ví dụ:
path.normalize('home/projects/web/../mobile/./code'); - path.join: Hàm này xây dựng một đường dẫn từ một số phân đoạn. Ví dụ:
path.join('home', 'projects', '../', 'movies'); - path.basename: Các tên cơ sở hàm trả về đoạn đường dẫn cuối cùng. Bạn có thể sử dụng nó theo hai cách:
path.basename('home/projects/web/index.js');path.basename('home/projects/web/index.js', '.js');
- path.dirname: Hàm này trả về đường dẫn đến thư mục cuối cùng của một đường dẫn nhất định. Thí dụ:
path.dirname('home/projects/web/index.js'); - path.extname: Với chức năng này, bạn có thể lấy phần mở rộng của tệp từ một đường dẫn nhất định.
path.extname('home/projects/web/index.js');
Mở và đóng tệp
- fs.open: Đây là chức năng để mở hoặc tạo tệp đồng bộ trong Node.js. Hình thức đồng bộ của fs.open Là fs.openSync. fs.open ac chấp nhận bốn đối số là đường dẫn tệp, cờ, chế độ mở và hàm gọi lại. Cờ và mở cách thức có giá trị mặc định và bạn có thể tìm hiểu thêm về chúng từ tài liệu Node.js fs.open.
const filePath = path.join(__dirname, '/videos/newVideo.mp4');fs.open(filePath, (error, fileDescriptor) => {
console.log(fileDescriptor);
}) - fs.close: Một thông lệ tốt là luôn đóng mọi tệp đang mở khi chúng không còn cần thiết nữa. Node.js có fs.close chức năng này:
fs.open(filePath, (error, fileDescriptor) => {
console.log(fileDescriptor);
fs.close(fileDescriptor, (error) => {
console.log('File closed successfully');
});
})
Tạo và xóa
- fs.mkdir: Điều này hoạt động giống như mkdir lệnh đầu cuối tạo một thư mục mới. Nó lấy một đường dẫn, chế độ (tùy chọn) và hàm gọi lại làm tham số. Bạn có thể sử dụng nó như thế này:
const dirPath = path.join(__dirname, 'newDirectory');
fs.mkdir(dirPath, (error) => {
console.log('New directory created successfully');
}); - fs.unlink: Hàm này loại bỏ hoặc xóa tệp tại đường dẫn được truyền vào dưới dạng đối số. Hãy xem xét ví dụ mã bên dưới:
const filePath = path.join(_dirname, 'oldFile.js');fs.unlink(filePath, (error) => {
console.log('File has been deleted successfully');
}); - fs.rmdir: Phương pháp này xóa thư mục tại một đường dẫn nhất định. Nó rất giống cách sử dụng với phương pháp hủy liên kết:
const dirPath = path.resolve('home', 'projects', 'web');fs.rmdir(dirPath, (error) => {
console.log('Directory successfully deleted');
})
Siêu dữ liệu tệp
- fs.exists: Các tồn tại phương pháp kiểm tra xem tệp tại một đường dẫn nhất định có tồn tại hay không. Cách thực hiện như sau:
let filePath = path.join(__dirname, 'index.html');fs.exists(filePath, (exists) => {
console.log(exists)
}) - fs.stat: Đây là một hàm đồng bộ trả về các thuộc tính của một tệp. Nó trả về một fs.Stats đối tượng hiển thị một số phương thức để truy cập các thuộc tính của tệp. Đây là một ví dụ:
fs.stat('index.js', (error, stats) => {
console.log(stats);
stats.isFile();
stats.isDirectory();
})
Bạn nên sử dụng đường dẫn khi làm việc với các đường dẫn tệp vì chúng giúp bạn tránh được các hành vi không mong muốn trên các nền tảng. Tài liệu đường dẫn Node.js fs và Node.js mô tả một danh sách đầy đủ các phương thức.
Thao tác với hệ thống tệp trong Node.js
Sự rộng lớn của fs mô-đun giúp bạn dễ dàng truy cập và tương tác với các tệp trên bất kỳ hệ điều hành nào. Khi bạn sử dụng nó cùng với đường dẫn mô-đun, bạn có nhiều chức năng hơn và có thể thao tác với hệ thống tệp như bạn muốn.
Một ưu điểm chính của Node.js là tính di động của nó. Bạn có thể phát triển ứng dụng của mình trên bất kỳ nền tảng nào và triển khai chúng ở bất kỳ đâu mà không cần lo lắng về các vấn đề tương thích cơ bản.