Узел fs.unlink: объект ошибки отличается на разных машинах
Прошу прощения, если пропустил подобный вопрос - я почесал сайт и ничего не смог найти.
Мой код выглядит так (после обещания fs.unlink):
return unlinkAsync(file)
.catch((err) => {
if (err.code === 'ENOENT') {
// Not a concern - file didn't exist, and that's ok
} else {
// Unexpected - propagate it up
throw err;
}
});
Проблема: на моей машине (OSX Sierra, узел 5.9.1) err.code существует, и все обрабатывается правильно, когда нет файла для удаления. Однако на другом компьютере - той же ОС и версии Node - err.code не существует - мы видим свойство под названием 'причина', у которого есть свойство 'код', но нет кода err.code.
Я искал исходный код узла (кодировал только узел в течение месяца, но, думаю, ничего не пропустил), и не смог найти ничего, кроме ожиданий относительно e.code.
Любые советы или рекомендации будут с благодарностью!
Заранее спасибо! Джон
1 ответ
В конечном итоге все сводилось к более старой версии Bluebird (1.2.4) на другом компьютере разработчика (спасибо @mscdex!) - последняя версия (3.4.7) предоставляет код err.code, а более старая - нет.
Однако на более глубоком уровне это произошло из-за того, что я не стал обновлять наш package.json, чтобы включить ожидаемую версию Bluebird - урок.
Спасибо!