Интерфейс командной строки простого диспетчера задач с использованием Node.js

Опубликовано: 26 Июля, 2021

Перед созданием простого интерфейса командной строки диспетчера задач с использованием NodeJS давайте запустим наше первое базовое приложение Node.js, выполнив следующие простые шаги:

Примечание. Вы можете загрузить и установить приложение Node.js со страницы href = ”https://nodejs.org/en/”
Шаг 1: Создайте каталог для нашего интерфейса командной строки диспетчера задач с именем TODO-CLI, вы можете дать имя по своему выбору.

напишите: mkdir <имя файла>

Шаг 2. В этом каталоге создайте файл JavaScript с именем index.js, как показано ниже:

Создайте файл 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