Thông tin liên hệ
- 036.686.3943
- admin@nguoicodonvn2008.info
JSON là một định dạng dữ liệu cực kỳ phổ biến, vì thế, điều quan trọng bạn cần tìm hiểu tất cả những tác vụ thông dụng. Dưới đây là cách đọc và ghi file JSON trong Node.js.

Bạn có thể đọc và ghi file JSON trong Node.js. Toàn bộ việc bạn cần làm là dùng mô đun fs làm chi tiết trong hướng dẫn đơn giản dưới đây.
JavaScript Object Notation hay JSON là một định dạng chuyển đổi dữ liệu gọn nhẹ được dùng phổ biến trong việc trình bày dữ liệu theo cấu trúc. Nó là định dạng dựa trên văn bản, dễ cho con người đọc & ghi, với máy móc thì nó dễ phân tích và tạo dữ liệu.
Khả năng đọc và ghi file JSON theo chương trình trong Node.js cho phép bạn lưu trữ, trao đổi và thao tác dữ liệu theo cấu trúc hiệu quả và dễ dàng. Hãy cùng nhau học cách đọc, ghi và update file JSON bằng mô đun hệ thống file Node.js.
Hệ thống file Node.js (fs) được xây dựng trong Node.js. Nó cho phép bạn tương tác với hệ thống file trên thiết bị. Bạn có thể dùng nó để đọc nội dung, tạo mới và xóa file.
Những phương thức được cung cấp bởi mô đun fs có thể là đồng bộ hoặc bất đồng bộ. Các phương thức đồng bộ chặn chạy chương trình của bạn cho tới khi hoạt động của hệ thống file hoàn tất. Những phương pháp này luôn có “Sync” ở cuối tên. Ví dụ, readFileSync hoặc writeFileSync.
Mặt khác, các phương thức bất đồng bộ không chạy thực thi chương trình và cho phép nó liên tục xử lý những nhiệm vụ khác trong khi triển khai hoạt động hệ thống file. Những phương thức này chấp nhận hàm callback, sẽ chạy khi hoạt động hoàn tất. Ví dụ, readFile hoặc writeFile.
Khi tương tác với hệ thống file, bạn luôn dùng các phương thức bất đồng bộ để duy trì bản chất không chặn của lặp sự kiện và cải thiện hiệu suất và phản hồi của ứng dụng.
Tuy nhiên, các phương thức đồng bộ có vai trò riêng của chúng trong những trường hợp nhất định, đặc biệt là khi bạn đang viết các tập lệnh đơn giản hoặc xử lý những thao tác tệp 1 lần.
Để đọc file JSON, đầu tiên, nhập mô đun fs bất đồng bộ vào file chính như sau:
const fs = require("node:fs/promises");
Nếu đang dùng phiên bản thấp hơn Node.js 18, nhập mô đun fs như sau:
const fs = require("fs/promises");
Bạn có thể đọc file JSON bằng phương thức readFile nhận 2 đối số: một đường dẫn file và một đối tượng cấu hình tùy chọn. Đối số config xác định các lựa chọn để đọc file và có thể là một đối tượng với những lựa chọn hay mã hóa chuỗi.
Tùy chọn đối tượng bao gồm:
Ví dụ:
fs.readFile("./users.json", { encoding: "utf-8", flag: "r" })
.then((data) => {
const users = JSON.parse(data);
console.log(users);
})
.catch((error) => {
console.error('Error reading the JSON file:', error);
});
Code này đọc một file JSON tên users.json trong thư mục hiện tại. Khi bạn truy xuất dữ liệu của file, bạn có thể phân tích nó từ JSON vào đối tượng JavaScript bằng JSON.parse. Điều này cho phép bạn truy cập và chỉnh sửa dữ liệu dưới dạng một đối tượng trong code.
Bạn có thể viết dữ liệu vào file JSON bằng phương thức writeFile. Phương pháp này tính 3 đối số:
Phương thích này ghi dữ liệu không đồng bộ vào một file. Nếu file tồn tại, nó ghi đè nội dung hiện có vào nội dung mới. Nếu file không tồn tại, nó tạo tập tin, rồi điền dữ liệu bạn chuyển dưới dạng đối số vào nó.
Ví dụ:
const fakeUsers = [
{
id: 1,
name: "John Doe",
username: "johndoe123",
address: {
street: "123 Main St",
city: "Anytown",
},
},
{
id: 2,
name: "Jane Smith",
username: "janesmith456",
address: {
street: "456 Elm St",
city: "Another City",
},
}
];
fs.writeFile("./users.json", JSON.stringify(fakeUsers), {
encoding: "utf-8",
flag: "w",
}).catch((error) => {
console.error('Error writing the JSON file:', error);
});
Dữ liệu bạn chuyển vào hàm writeFile phải là một chuỗi hoặc vùng đệm, vì thế, nếu bạn muốn ghi một đối tượng vào file, đầu tiên, bạn phải chuyển đổi nó sang dạng chuỗi bằng phương thức JSON.stringify.
Mô đun fs không cung cấp cách rõ ràng để update file, vì việc ghi tệp sẽ đè lên dữ liệu hiện tại.
Để xử lý vấn đề này, trước tiên bạn có thể update file bằng cách lấy nội dung hiện tại từ file bằng phương thức readFile. Sau đó, thêm dữ liệu hiện có vào dữ liệu hiện tại và chuyển nó đi dưới dạng đối số dữ liệu trong phương thức writeFile.
Đây là một hàm triển khai logic trên:
const updateFile = async (filePath, data) => {
try {
const fileContents = await fs.readFile(filePath, {
encoding: "utf-8",
flag: "r",
});
const fileData = JSON.parse(fileContents);
const updatedFileData = [...fileData, ...data];
await fs.writeFile(filePath, JSON.stringify(updatedFileData), {
encoding: "utf-8",
flag: "w",
});
return "File updated successfully";
} catch (error) {
console.error('Error updating the JSON file:', error);
}
};
Bạn có thể gọi hàm như sau:
updateFile("./users.json", [
{
id: 4,
name: "Jane Doe",
username: "janedoe123",
address: {
street: "123 Main St",
city: "Anytown",
},
},
{
id: 5,
name: "John Smith",
username: "johnsmith456",
address: {
street: "456 Elm St",
city: "Another City",
},
}
]).then((message) => {
console.log(message);
});
Khối code này sẽ thêm người dùng kèm thông tin ở trên vào file users.json hiện tại.
Bảo vệ ứng dụng Node.js khi đọc và ghi file JSON liên quan tới các vấn đề bảo mật quan trọng. Bạn nên xác thực dữ liệu JSON thường xuyên để đảm bảo nó hoạt động đúng như mong đợi. Bạn cũng nên hạn chế quyền truy cập và tẩy xóa dữ liệu đầu vào của người dùng để ngăn chặn nguy cơ hổng dữ liệu.
Nguồn tin: Quantrimang.com
Ý kiến bạn đọc
Những tin mới hơn
Những tin cũ hơn
Quản lý tài liệu trong kho kiến thức ElevenAgents
Generative Orchestration trong Copilot Studio: Cách agent đưa ra quyết định
Cách chỉnh sửa và nâng cấp câu hỏi bằng Wayground AI
Cách kết nối Claude với Gamma tạo website, slide thuyết trình
Hướng dẫn lọc và xóa thư với Plugin Gmail trong ChatGPT
11 trang web xem phim miễn phí vẫn hoạt động vào năm 2026
Hướng dẫn dùng Wayground AI để tạo bài kiểm tra
Hướng dẫn sử dụng Claude Slides tạo bài thuyết trình
Cách dùng plugin Wayground với ChatGPT
Ký tự khoảng trống FF là gì? Cách tạo tên trống trong Free Fire
Nâng cao khả năng ElevenAgents bằng cơ sở kiến thức quy mô lớn sử dụng RAG
100 ChatGPT/Gemini code giúp bạn chỉnh sửa ảnh như một chuyên gia
Cách thêm nhiều tài khoản Gmail vào plugin Gmail trên ChatGPT
Claude Design là gì? Cách dùng Claude Design thiết kế giao diện web
Làm sao để không còn nhận được những câu trả lời chung chung khi nhập prompt vào Claude nữa?
Hướng dẫn quản lý và ngắt kết nối ứng dụng trên ChatGPT
Hướng dẫn thiết lập thông báo giờ nghỉ trên Claude
Cách viết chữ kiểu FB: chữ in đậm, chữ 𝒏𝒈𝒉𝒊𝒆̂𝒏𝒈, đổi font chữ Facebook
Agent hỗ trợ nhiều giọng nói trong ElevenAgents
Kết hợp các kỹ thuật tạo prompt để thực hiện dự án thực tế
Cách lập trình chuyên nghiệp hơn, dễ dàng hơn với tính năng Tệp trên Grok
Hướng dẫn cài đặt và sử dụng n8n trên Windows 11
Công thức tính diện tích hình Elip
Hướng dẫn ngắt kết nối ứng dụng trên ChatGPT
Hướng dẫn tạo đoạn hội thoại cho topic trên Twee
Bức tranh tổng quan về hỗ trợ khách hàng tích hợp AI
6 cách mở Computer/System Properties trong Windows 10
Đừng chia sẻ ảnh cho đến khi bạn chạy kiểm tra siêu dữ liệu này!
Cách sửa lỗi There Are Currently No Power Options Available Windows
Hướng dẫn 8 cách mở bàn phím ảo trên Windows 10