Ghi 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 14 trên 33.
add quên ghi chú ngay khi chương trình kết thúc.
writeFileSync(path, text) ghi một tệp, thay thế toàn bộ nội dung trong tệp. JSON.stringify chuyển một mảng thành văn bản JSON, còn null, 2 thụt lề văn bản bằng hai dấu cách để dễ đọc trong Files.
import { writeFileSync } from 'node:fs';
const scores = [12, 40];
scores.push(31);
writeFileSync('scores.json', JSON.stringify(scores, null, 2));Tệp luôn chứa toàn bộ mảng: tải ghi chú, thêm một ghi chú, rồi ghi lại tất cả. Trong store.js, add là phương thức của đối tượng store. Bên trong một phương thức, this chính là đối tượng đó, vì vậy this.notes là mảng của store. Truyền trực tiếp mảng sẽ gây lỗi, vì tệp chứa văn bản.
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 trong khóa học, không phải các tệp dự án của bạn trong Đọc tệp (bao gồm store.js). Phần bạn đã làm trước đó vẫn nằm trong bài học riêng. Hãy đọc các tệp được cung cấp trước khi chỉnh sửa store.js. Bản sao này chứa công cụ ghi chú có chức năng đọc tệp.
add vẫn quên ghi chú khi chương trình kết thúc. Hãy sửa để chương trình lưu mọi ghi chú vào notes.json, để list hiển thị ghi chú đó trong lần chạy tiếp theo.
- Trong
store.js, sau khiaddđưa ghi chú mới vào mảng, hãy ghi toàn bộ mảng trở lạinotes.jsondưới dạng JSON. Ghi mọi ghi chú, không chỉ ghi chú mới: thao tác ghi tệp sẽ thay thế toàn bộ nội dung đã có trong tệp. Thụt lề JSON bằng hai dấu cách để dễ đọc trong Files. - Trong
notes.js, ở nhánhadd, hãy thay dòng inAdding: .... Giờ dòng này chỉ inSaved note, số thứ tự của ghi chú mới và một dấu chấm. Khinotes.jsonbắt đầu bằng hai ghi chú,node notes.js add Buy breadsẽ in:và sau đóSaved note 3.notes.jsonsẽ có nội dung:[ "Buy milk", "Call Ada", "Buy bread" ] - Nếu chưa có
notes.json,addsẽ tạo tệp này. Sau khi dùngclear,node notes.js add Call Adasẽ inSaved note 1., rồilistsẽ hiển thị1. Call Ada.
Thử nhé: nhập add Buy bread vào ô sau $ node notes.js rồi nhấn Enter. Bạn sẽ thấy Saved note 3.. Nhập list: Buy bread giờ là ghi chú số 3, dù đây là lần chạy mới. Mở notes.json trong Files để xem mảng đã lưu. Sau đó nhập clear để xóa tệp, rồi nhập add Call Ada: bạn sẽ thấy Saved note 1..
Tự làm thử
import { existsSync, readFileSync } from 'node:fs';
const file = 'notes.json';
const store = {
notes: existsSync(file) ? JSON.parse(readFileSync(file, 'utf8')) : [],
add(text) {
this.notes.push(text);
return this.notes.length;
},
};
export default store;
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