Запутался, как notes = JSON.parse (noteString); - PullRequest
0 голосов
/ 14 сентября 2018
var addnote = function (title, body) {
      var notes = [];
      var note = {
        title: title,
        body: body
          }

требуется объяснение в двух строках при попытке

  try {
          var noteString = fs.readFileSync("data.json");
          notes = JSON.parse(noteString);

        } catch (e) {

        }

И объяснение того, как работает duplicateNotes ..

  var duplicateNotes = notes.filter(function(note){
          return note.title === title
        })

        if (duplicateNotes.length === 0) {
          notes.push(note);
          fs.writeFileSync("data.json", JSON.stringify(notes));
        }
    }

1 Ответ

0 голосов
/ 14 сентября 2018

JSON.parse преобразует объект JSON в строку.

{
  field1:field1Value,
  field2:fieldValue
}

Если это в формате Json, вы можете получить доступ к его элементам, используя JSONObjectName.fieldName

But,if it's converted to String it looses it's JSON properties. You can't access fields in same way. Output will act like String. 

нужно пояснение в двух строках

var noteString = fs.readFileSync("data.json");

Существует два вида ответа: асинхронный и синхронный. Синхронный звонок, как будто вы не начнете играть, пока не получите пас и не забьете гол. Но асинхронный вызов - это как будто вы начинаете играть со своим другом, но вы бежите рядом с ним, и есть обещание, что вы не будете стрелять, пока не получите мяч.

readFileSync прочитает файл, а следующая строка будет ждать, пока не получит пропуск.
JSON.parse () преобразует содержимое файла в объект JSON.

И объяснение того, как работает duplicateNotes ..

var duplicateNotes = notes.filter(function(note){
          return note.title === title
        })

Всякий раз, когда совпадение найдено, этот элемент в заметках будет помещен в дубликат заметки. Вот и все.

...