CLI del administrador de tareas simple con Node.js

Antes de crear una CLI del Administrador de tareas simple con NodeJS, ejecutemos nuestra primera aplicación básica de Node.js con los siguientes pasos simples:

Nota: Puede descargar e instalar la aplicación Node.js desde href=”https://nodejs.org/en/”
Paso 1: Cree un directorio para nuestra CLI del Administrador de tareas llamado TODO-CLI, puede dar el nombre de su elección.

escribir: mkdir <nombre de archivo>

 Paso 2:  en ese directorio, cree un archivo JavaScript llamado index.js como se muestra a continuación:

Hacer un archivo index.js 

Paso 3:  este archivo contiene código JavaScript para ejecutar un programa. Ahora podemos escribir un código de muestra como se muestra a continuación:

 

Paso 4:  después de escribir el código en el archivo index.js, ejecute este archivo con el siguiente comando:

node index.js

Después de ejecutar el comando, obtendrá el siguiente resultado. Entonces, ahora confirmamos que nuestro archivo index.js se está ejecutando sin ningún problema.

Paso 5: Instale los siguientes módulos que se utilizan para esta aplicación usando el siguiente comando:

npm install yargs
npm install lodash
  • loadsh: una moderna biblioteca de utilidades de JavaScript que ayuda a trabajar con Array, Numbers, String, Objects y Strings.
  • yargs: es un módulo de línea de comandos interactivo que ayuda a leer la entrada del usuario. 

Paso 6: crea un nuevo archivo llamado todo.js y escribe el siguiente código en él:

Nombre de archivo: 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
};

En el archivo anterior incluido en la sección de utilidades que maneja todo el sistema de administración de archivos NodeJS como se muestra a continuación: 

Paso 7: Ahora actualice nuestro código de archivo index.js anterior con el siguiente código completo:

Nombre de archivo: 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.');
}

Paso 8: Los siguientes son algunos comandos para nuestra aplicación de tareas:

1. Agregar tareas: use el siguiente comando para agregar tareas para nuestra aplicación.

node index.js addTodo --title="your tasks"  

Cuando agrega todas las tareas mediante el uso de la línea de comando, si observa la carpeta del proyecto, puede ver que se crea un archivo task-data.json y todas las tareas se enumeran como estructura JSON en ese archivo, como se muestra a continuación:

2. Eliminar tareas: la eliminación de tareas es necesaria cuando se completaron las tareas y desea eliminarlas de su lista de tareas, puede eliminar tareas con el siguiente comando:

node index.js deleteTodo --title="your task"  

Cuando ejecuta este comando, si señala en task-data.json, verá qué datos escribió para eliminarlos de la lista de tareas como se muestra a continuación:

3. Leer tareas: si desea verificar que todas sus tareas estén presentes o no, use el siguiente comando:

node index.js readTodo --title="your task"  

4. Mostrar lista de tareas: si desea ver todas las tareas que aún no se han completado, utilice el siguiente comando:

node index.js listTodos  

Publicación traducida automáticamente

Artículo escrito por rickyrayabhisek99 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *