try语句永远不会失败而不会引发错误

时间:2018-11-03 19:39:44

标签: javascript node.js

在下面的代码块中,我试图获取用户输入并将其保存在json文件中。如果插入的项目已经存在于文件中,它将被拒绝。这里的问题是我的程序总是执行catch子句并生成一个空数组,尽管在某些情况下存在json文件并且可以读取它。

const fs = require('fs');

const loadFile = () => {
  try{
    const stringData = fs.readFileSync('note-data.json', 'utf8');
    return [JSON.parse(stringData)];
  } catch (e) {
    return [];
  }
};

const writeFile = (notes) => {
  fs.writeFileSync('note-data.json', JSON.stringify(notes));
};

const addNote = (title, body) => {
  let notes = loadFile();

  const note = {
    title,
    body
  }


  console.log(notes);
  const duplicateArray = notes.filter((note) => note.title === title);

   console.log(duplicateArray);
  if(duplicateArray.length === 0){
    notes.push(note);
    writeFile(notes);
  }

};

命令行输入如下:

node app.js add --title=Greeting --body="hello"
node app.js add --title=Greeting2 --body="hello2"

输出为:

[{"title":"Greeting","body":"hello"}]

输出应为:

[{"title":"Greeting","body":"hello"}, {"title":"Greeting2","body":"hello2"}]

我的问题是此错误发生在哪里?

1 个答案:

答案 0 :(得分:0)

错别字?

@font-face {
    font-family: myFirstFont;
    src: url(sansation_light.woff);
}

不是文件“ note-data.json”吗?