Storing notes in the filesystem
The filesystem is an often overlooked database engine. While filesystems don't have the sort of query features supported by database engines, they are a reliable place to store files. The notes schema is simple enough that the filesystem can easily serve as its data storage layer.
Let's start by adding a function to Note.mjs:
exportdefaultclassNote {
...
get JSON() {
return JSON.stringify({
key: this.key, title: this.title, body: this.body
});
}
static fromJSON(json) {
var data = JSON.parse(json);
var note = new Note(data.key, data.title, data.body);
return note;
}
}JSON is a getter, which means it gets the value of the object. In this case, the note.JSON attribute/getter, no parentheses, will simply give us the JSON representation of the Note. We'll use this later for writing to JSON files.
fromJSON is a static function, or factory method, to aid in constructing Note objects if we have a JSON...