【问题标题】:Confused on how notes = JSON.parse(noteString);对 notes = JSON.parse(noteString); 的方式感到困惑
【发布时间】:2019-02-19 08:00:38
【问题描述】:
var addnote = function (title, body) {
      var notes = [];
      var note = {
        title: title,
        body: body
          }

需要在try下的两行解释

  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));
        }
    }

【问题讨论】:

  • 您具体问的是什么?您是否查看过这些函数的文档?
  • 是的,但我是 node js 的初学者,不懂文档

标签: json node.js fs


【解决方案1】:

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. 

try下的两行需要解释

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

响应返回有异步和同步两种。同步呼叫就像您在获得传球并进球之前不会开始比赛。但是,异步调用就像你开始和你的朋友一起玩,但是,你跑到他身边,并且保证在你拿到球之前你不会射门。

readFileSync 将读取文件,下一行将等到它通过。
JSON.parse() 将文件内容转换为 JSON 对象。

以及有关 duplicateNotes 工作原理的说明 ..

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

每当找到匹配项时,便笺中的该元素将被推送到重复便笺。就是这样。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-24
    • 2019-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-27
    • 2014-11-27
    相关资源
    最近更新 更多