Đọc tệp
Thuộc phần Kiến thức cơ bản về Node.js trong hành trình Node.js của Coddy. Bài học 12 trên 33.
Mỗi lần chạy đều bắt đầu với cùng ba ghi chú, vì chúng chỉ nằm trong bộ nhớ.
readFileSync(path, 'utf8') từ node:fs đọc một tệp dưới dạng chuỗi. Tệp ghi chú lưu JSON, một định dạng văn bản cho dữ liệu được viết giống như mảng và đối tượng JavaScript, còn JSON.parse chuyển văn bản đó thành một mảng. Đọc một tệp không tồn tại sẽ gây ra lỗi ENOENT, vì vậy hãy kiểm tra bằng existsSync trước. Ví dụ dùng condition ? a : b, biểu thức này trả về a khi điều kiện đúng và b khi điều kiện sai.
import { existsSync, readFileSync } from 'node:fs';
const scores = existsSync('scores.json')
? JSON.parse(readFileSync('scores.json', 'utf8'))
: [];
console.log(scores.length);Không có 'utf8', bạn sẽ nhận được một Buffer, tức các byte thô của tệp, thay vì một chuỗi.
Thử thách
DễBước này mở dự án công cụ dòng lệnh ghi chú đã chuẩn bị sẵn cho khóa học, chứ không phải các tệp dự án trong CommonJS Modules (bao gồm legacy/stats.cjs). Phần bạn đã làm trước đó vẫn nằm trong bài học riêng. Đọc các tệp được cung cấp trước khi chỉnh sửa store.js. Bản sao này có tất cả các lệnh từ trước đến nay, cùng với một lệnh clear mới.
Hiện tại, mỗi lần chạy đều bắt đầu với cùng ba ghi chú được viết trong store.js. Thay vào đó, ghi chú nên được lấy từ một tệp: notes.json, bạn có thể mở tệp này trong Files.
- Trong
store.js, thay danh sách cố định gồm ba ghi chú.notescủa store phải chứa mảng được lưu trongnotes.json: đọc tệp dưới dạng văn bản, sau đó chuyển văn bản JSON thành một mảng. - Nếu
notes.jsonkhông tồn tại, store sẽ bắt đầu với một mảng rỗng thay vì dừng lại do lỗi. Kiểm tra xem tệp có tồn tại trước khi đọc hay không.
notes.json bắt đầu với hai ghi chú, vì vậy node notes.js list sẽ in ra:
Notes for you
1. Buy milk
2. Call AdaKhi không có notes.json, lệnh sẽ in ra:
Notes for you
No notes yetBạn chỉ thay đổi store.js. notes.js đã in ra No notes yet khi store trống.
Thử nhé: nhập list vào ô sau $ node notes.js rồi nhấn Enter. Bạn sẽ thấy hai ghi chú trong tệp. Sau đó nhập clear. Lệnh này đã có trong notes.js: lệnh xóa notes.json và in ra Deleted notes.json. Nhập lại list: bạn sẽ thấy No notes yet. Trước khi nhấn "Kiểm tra", nhấn Reset files để khôi phục notes.json, vì các lượt kiểm tra cần tệp này.
Tự làm thử
// Tải các ghi chú từ notes.json thay vì danh sách này.
const store = {
notes: ['Buy milk', 'Call Ada', 'Water the plants'],
add(text) {
this.notes.push(text);
return this.notes.length;
},
};
export default store;
Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Kiến thức cơ bản về Node.js
1Chạy JavaScript trên Node
Xin chào, NodeĐọc lệnhĐối số dòng lệnhCác lệnhTự luyện tập: Playground Express