Ошибки и коды завершения
Часть раздела Основы Node.js путешествия по Node.js на Coddy. Урок 4 из 24.
Если команда завершилась с ошибкой, терминал и скрипты, вызывающие вашу программу, должны об этом знать.
У программы есть два потока вывода: stdout для результатов и stderr для ошибок, которые выводятся с помощью console.error. При завершении программа возвращает код выхода: 0 означает, что она отработала успешно, любое другое значение означает ошибку. process.exit(1) немедленно останавливает программу с кодом 1.
// node divide.js 6 0
const [a, b] = process.argv.slice(2).map(Number);
if (b === 0) {
console.error('Cannot divide by zero');
process.exit(1);
}
console.log(a / b);Терминал рядом с кодом отображает stderr красным цветом и выводит код выхода, если он не равен 0.
Задание
Легко- Если команда не указана, выведите
Usage: node notes.js <command> [words]в stderr и завершите выполнение с кодом1. - При неизвестной команде выведите
Unknown command: <word>, а затем строку с инструкцией по использованию — обе в stderr — и завершите выполнение с кодом1.
Запустите node notes.js, затем node notes.js remove 3.
Попробуйте сами
// Здесь начинается ваш инструмент для заметок.
const [command, ...words] = process.argv.slice(2);
const text = words.join(' ');
if (command === 'add') {
console.log(`Adding: ${text}`);
} else if (command === 'list') {
console.log('No notes yet');
} else {
console.log(`Unknown command: ${command}`);
}
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы Node.js
1Запуск JavaScript в Node
Знакомство с NodeАргументы командной строкиКоманды