Как проверить тип ошибки при использовании fs в nodejs
Я с помощью fs в nodejs открываю файл. С помощью try/catch. И если выполняется JSON.parse() по данным из файла, то все ок, если нет - ошибка(catch). Как проверить в catch когда ошибка - файл не найден, а когда ошибка из за не выполнения JSON.parse(). Т.е. данные в файле не в JSON формате?
Код открытия файла: const data = fs.readFileSync('file.json', 'utf8');
Ответы (1 шт):
Автор решения: vsemozhebuty
→ Ссылка
Можно, например, так:
const fs = require('fs');
let data;
try {
data = fs.readFileSync('test.json', 'utf8');
} catch {
console.error('fs error!');
}
if (data) {
try {
data = JSON.parse(data);
console.log(data);
} catch {
console.error('JSON error!');
}
}
Или так:
const fs = require('fs');
try {
let data = fs.readFileSync('test.json', 'utf8');
data = JSON.parse(data);
console.log(data);
} catch(err) {
if (err.code === 'ENOENT') console.error('fs error!');
else if (err instanceof SyntaxError) console.error('JSON error!');
else console.error('Unknown error: ', err);
}