Узел 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 - урок.

Спасибо!

Другие вопросы по тегам