@wufapexef

Почему не срабатывает коллбек в fs.readFile?

Почему не срабатывает err что файл не существует (file не существует), а выбивает другую ошибку, связанную с кодом else

SyntaxError: Unexpected token u in JSON at position 0
    at JSON.parse (<anonymous>)


fs.readFile(file, 'utf8', (err, snapshot) => {
    if (err) {
      axios.get(url)
        .then((res) => {
          let firstSnapshot = { data: '', date: '' }
          let $ = cheerio.load(res.data)
          firstSnapshot.data = $(selector).html().replace(/\s/g, '')
          firstSnapshot.date = new Date(Date.now())
          fs.writeFile(file, JSON.stringify(firstSnapshot, null, 2), (err) => {
            return console.log('First snapshot file created!')
          })
        })
    }
    snapshot = JSON.parse(snapshot)
    console.log(snapshot.date)
  })


Как вообще лучше всего осуществить такую задачу: реквайрить или читать файл, но если он не существует, то создавать его и потом опять же читать?
  • Вопрос задан
  • 148 просмотров
Решения вопроса 1
vitali1995
@vitali1995
Потому что после проверки ошибки несуществующий файл пытаются распарсить:
snapshot = JSON.parse(snapshot)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы