Интерфейс командной строки простого диспетчера задач с использованием Node.js
Перед созданием простого интерфейса командной строки диспетчера задач с использованием NodeJS давайте запустим наше первое базовое приложение Node.js, выполнив следующие простые шаги:
Примечание. Вы можете загрузить и установить приложение Node.js со страницы href = ”https://nodejs.org/en/”
Шаг 1: Создайте каталог для нашего интерфейса командной строки диспетчера задач с именем TODO-CLI, вы можете дать имя по своему выбору.
Шаг 2. В этом каталоге создайте файл JavaScript с именем index.js, как показано ниже:
Шаг 3. Этот файл содержит некоторый код JavaScript для запуска программы. Теперь мы можем написать пример кода, как показано ниже:
Шаг 4: После написания кода в файле index.js запустите этот файл с помощью следующей команды:
узел index.js
После выполнения команды вы получите следующий результат. Итак, теперь мы подтверждаем, что наш файл index.js работает без проблем.
Шаг 5: Установите следующие модули, которые используются для этого приложения, используя следующую команду:
npm установить yargs npm установить lodash
- loadsh: современная служебная библиотека JavaScript, которая помогает работать с массивами, числами, строками, объектами и строками.
- yargs: это интерактивный модуль командной строки, который помогает читать вводимые пользователем данные.
Шаг 6: Создайте новый файл с именем todo.js и запишите в него следующий код:
Имя файла: todo.js
Javascript
console.log( "todo.js is running !!" ); const fs = require( 'fs' ); // Add a todo item var addTodo = (title) => { var todos = fetchTodos(); var todo = { title }; var duplicatetodos = todos.filter( (todo) => todo.title === title); if (duplicatetodos.length === 0) { todos.push(todo); saveTodos(todos); return todo; } }; // Delete a todo item var deleteTodo = (title) => { var todos = fetchTodos(); var filteredtodos = todos.filter( (todo) => todo.title !== title); saveTodos(filteredtodos); return todos.length !== filteredtodos.length; }; // Read a todo item var readTodo = (title) => { var todos = fetchTodos(); var filteredTodos = todos.filter( (todo) => todo.title === title); return filteredTodos[0]; }; // List all todo items var listTodos = () => { return fetchTodos(); }; // Utility functions var fetchTodos = () => { try { var todosString = fs.readFileSync( 'tasks-data.json' ); return JSON.parse(todosString); } catch (e) { return []; } }; var saveTodos = (todos) => { fs.writeFileSync( 'tasks-data.json' , JSON.stringify(todos)); }; var logTodo = (todo) => { console.log( '## ---## --- ##' ); console.log(`It's title is: ${todo.title}`); }; // Exporting function module.exports = { addTodo, deleteTodo, readTodo, listTodos, logTodo }; |
В приведенном выше файле, включенном в раздел служебных программ, который обрабатывает всю систему управления файлами NodeJS, как показано ниже:
- readFileSync: https://www.geeksforgeeks.org/node-js-fs-readfilesync-method/
- writeFileSync: https://www.geeksforgeeks.org/node-js-fs-writefilesync-method/
- JSON.parse: https://www.geeksforgeeks.org/javascript-json-parse-method/
- JSON.stringify: https://www.geeksforgeeks.org/javascript-json-stringify-method/
Шаг 7. Теперь обновите наш предыдущий код файла index.js следующим полным кодом:
Имя файла: index.js
Javascript
console.log( "index.js is running" ); const fs = require( 'fs' ); const _ = require( 'lodash' ); const yargs = require( 'yargs' ); const tasks = require( './todo' ); const argv = yargs.argv; var command = argv._[0]; console.log( 'Running Command is :' , command); if (command === 'addTodo' ) { tasks.addTodo(argv.title); } else if (command === 'deleteTodo' ) { var todoDeleted = tasks.deleteTodo(argv.title); var message = todoDeleted ? 'Todo was deleted' : 'Todo can not found' ; console.log(message); } else if (command === 'readTodo' ) { var todo = tasks.readTodo(argv.title); if (todo) { console.log( 'yahoo! The todo was found.' ); tasks.logTodo(todo); } else { console.log( 'Oops! The todo was not found.' ); } } else if (command === 'listTodos' ) { var allTodos = tasks.listTodos(); console.log(`${allTodos.length} tasks available`); allTodos.forEach((todo) => tasks.logTodo(todo)); } else { console.log( 'It is a Invalid command.' ); } |
Шаг 8: Ниже приведены некоторые команды для нашего приложения-задачи:
1. Добавить задачи: используйте следующую команду, чтобы добавить задачи для нашего приложения.
node index.js addTodo --title = "ваши задачи"
Когда вы добавляете все задачи с помощью командной строки, если вы посмотрите на папку проекта, вы увидите, что файл task-data.json создан, и все задачи перечислены в виде структуры JSON в этом файле, как показано ниже:
2. Удалить задачи: Удалить задачу необходимо, когда задачи завершены, и вы хотите удалить их из списка задач, вы можете удалить задачу с помощью следующей команды:
узел index.js deleteTodo --title = "ваша задача"
Когда вы запускаете эту команду, если вы укажете в файле task-data.json, вы увидите, какие данные вы ввели для удаления, и удалите их из списка задач, как показано ниже:
3. Прочтите задачи: если вы хотите проверить, присутствуют ли все ваши задачи, используйте следующую команду:
node index.js readTodo --title = "ваша задача"
4. Показать список задач: если вы хотите увидеть все задачи, которые еще не завершены, используйте следующую команду:
узел index.js listTodos