Tu primera experiencia con Node.js

1

¿Dónde aprender backend con Node.js actualizado?

2

Todo lo que aprenderás sobre backend con Node.js

3

¿Qué es Node.js?

4

¿Qué es Node.js y para qué sirve?

5

Diferencias entre Node.js y JavaScript

6

Resumen: Diferencias Nodejs y Javascript

7

Instalación de Node.js

8

Arquitectura orientada a eventos

9

Node.js para la web

Manejo y uso de Streams con Node.js

10

Introducción a streams

11

Readable y Writable streams

12

Duplex y Transforms streams

Uso de utilidades de Node.js

13

Sistema operativo y sistema de archivos

14

Administrar directorios y archivos

15

Consola, utilidades y debugging

16

Clusters y procesos hijos

Crea tu primer proyecto en Express.js

17

¿Qué es Express.js y para qué sirve?

18

Creando tu primer servidor con Express.js

19

Request y Response Objects

Aprende a crear un API con REST

20

Anatomía de una API Restful

21

Estructura de una película con Moockaru

22

Implementando un CRUD en Express.js

23

Métodos idempotentes del CRUD

24

Implementando una capa de servicios

Cómo conectarse con librerías externas en Express.js

25

Creación de una BD en MongoAtlas

26

Conexión a MongoAtlas una instancia de MongoDB

27

Conexión con Robot3T y MongoDB Compass a una BD

28

Implementación de las acciones de MongoDB

29

Conexión de nuestros servicios con MongoDB

Conoce como funcionan los Middleware en Express.js

30

¿Qué es un middleware? Capa de manejo de errores usando un middleware

31

Manejo de errores asíncronos y síncronos en Express

32

Capa de validación de datos usando un middleware

33

¿Qué es Joi y Boom?

34

Implementando Boom

35

Implementando Joi

36

Probar la validación de nuestros endpoints

37

Middlewares populares en Express.js

Implementa tests en Node.js

38

Creación de tests para nuestros endpoints

39

Creación de tests para nuestros servicios

40

Creación de tests para nuestras utilidades

41

Agregando un comando para coverage

42

Debugging e inspect

Despliega tu primera aplicación en Express.js

43

Considerando las mejores prácticas para el despliegue

44

Variables de entorno, CORS y HTTPS

45

¿Cómo implementar una capa de manejo de caché?

46

¿Cómo contener tu aplicación en Docker?

47

Despliegue en Now

Conclusiones

48

¿Qué aprendiste en este curso?

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Administrar directorios y archivos

14/48
Recursos

Aportes 29

Preguntas 6

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Que mundo enorme es NodeJS. La verdad me encanta pero habra que practicar practicar, leer y leer-

Un ejemplo de lo que comenta Guillermo al final de la clase, sobre pasar los archivos por parametro.

Pasados los vectores como parametros en el comando de ejecucion:

const fs = require('fs');

const arg1= process.argv[2];

const arg2= process.argv[3];

fs.copyFile(arg1, arg2, error => {
    if (error) {
        console.log(error);
    }
    console.log(`${arg1} fue copiado como ${arg2}`);
})

Si no les funciona el mkdir con múltiples subcarpetas, asegúrense de tener una versión de NodeJS actualizada.

Asi quedaría usando process.argv

Para borrar archivos pueden usar el metodo ‘unlink’ de fs pasandole como primer parametro el archivo que desean borrar y como segundo parametro un callback

Con la función process.argv[]

este cursoestá mucho mejor estructurado que el de fundamentos de node con Carlos Hernández.
Va directo al grano con las funciones sin meterle paja.
El otro me consto trabajo terminarlo porque estaba muy malo, ojala lo diseñara de nuevo

Para convertir a promesas:

const fs = require('fs/promises');

(async function () {
  try {
    const files = await fs.readdir(__dirname);
    console.log(files);
  } catch (err) {
    console.error(err);
  }

  try {
    await fs.mkdir('platzi/escuela-js/node', { recursive: true });
  } catch (err) {
    console.error(err);
  }

  try {
    await fs.copyFile('naranja.txt', 'limon.txt');
    console.log('naranja.txt fue copiado como limon.txt');
  } catch (err) {
    console.error(err);
  }
})();

😃

:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

Probando el mismo codigo código pero con parametros, (nombre del archivo a copiar y nombre del archivo copiado):

const fs = require('fs');

const nameFile = process.argv[2];
const nameCopiedFile = process.argv[3];

fs.copyFile(nameFile, nameCopiedFile, error => {
    if (error)
        console.log(error);

    console.log(`${nameFile} copiado como ${nameCopiedFile}`);
}) 
node copy.js [nombre_archivo] [nombre_archivo_copiado]

Aquí un gist

Otra forma de hacerlo:

const fs = require('fs');

fs.copyFile(`${__dirname}/suena.txt`, `${__dirname}/limon.txt`, (err) => {

  if (err) {
    return console.log(err);
  }

  return console.log('arhivo fue copiado');
});
<const fs = require("fs");

 const file = process.argv[2];

 if (!file) {
     throw new Error('Debes indicar el archivo que quieres leer');
 }

  const content = fs.readFile(file, function(err, content){
    if (err) {
        return console.log(err);
    }

  const lines = content.toString().split("\n").length;
  console.log(lines);
});de> 

Resolviendo el ejericio pasando parametros:
Asincrona

const fs = require("fs");

const copy = process.argv[2];
const to = process.argv[3];

fs.copyFile(copy, to, (err) => {
  if (err) {
    console.log("hubo un error", err);
  }

  console.log(`Tu archivo ${copy} fue copiado como ${to}`);
});

Sincrona

const fs = require("fs");
try {
  const copy = process.argv[2];
  const to = process.argv[3];
  fs.copyFileSync(copy, to);

  console.log(`Tu archivo ${copy} se copio con exito como ${to}`);
} catch (err) {
  console.log("Ocurrio el siguiente error:", err.message);
}

Les dejo el primer código usando async await:

const fs = require('fs').promises;

const printFiles = async (files) => {
  console.log(await files);
};

printFiles(fs.readdir(__dirname));

Código de la clase

  • readdir.js
const fs = require('fs')

const files = fs.readdir(__dirname, (err, files) => {
    if (err) {
        return console.error(err)
    }

    console.log(files)
})
  • mkdir.js
const fs = require('fs')

fs.mkdir('carpeta-no-recursiva', err => (err) ? console.error(err) : '')
fs.mkdir('nueva-carpeta/otra-carpeta', { recursive: true }, err => (err) ? console.error(err) : '')
  • copy.js
const fs = require('fs')

fs.copyFile('naranja.txt', 'limon.txt', err => (err) ? console.error(err) : console.log('Naranja.txt fue copiado como limon.txt'))

Mega genial!! me encanta!!

Con arrow function quedaría asi:

fs.copyFile('naranja.txt', 'limon.txt', err => console.log(err))

Recomendaría mejor usar archivos bash para hacer esto, igual es bueno saber que nodejs puede hacerlo.

una clase importante para crear directorios y copiar archivos con fechas y nombres específicos. (como lo hace wordpress cuando publicas una imagen)

MkDir script

const fs=require("fs")


const file=fs.copyFile(process.argv[2],process.argv[3],(error,files)=>{
    if(error){
        return console.error(error)
    }
    console.log("archivo copiado")
})```

Mucho por practicar

xd

aqui les dejo un pequeño cli, para listar archivos, crear carpetas y copiar un archivo,

esta armado el esqueleto, y falta completar las funciones crear carpeta y copiar archivo.

const fs = require("fs");

/**
 * LIST THE FOLDER AND FILES OF A DIRECTORY
 */
const listFolder = (dir = __dirname) => {
  fs.readdir(dir, (err, files) => {
    if (err) {
      return console.log(err);
    }
    console.log(files.join(", "));
  });
};

/**
 * CREATES A FOLDER BY DEFAULT ON THE CURRENT DIR
 * AND WITH RECURSIVE OPTION (DON'T CREATE ANIDATE FOLDER) IN FALSE
 */
const createFolder = (dir = __dirname, recursive = false) => {
  fs.mkdir(dir, { recursive }, (err) => {
    if (err) {
      return console.log(err);
    }
  });
};

/**
 * CREATE A COPY OF A FILE FROM 
 * ORIGIN TO DESTINATION
 */
const copyFile = (origin, destination) => {
  fs.copyFile(origin, destination, (err) => {
    if (err) {
      console.log(err);
    }

    console.log("naranja.txt fue copiado como limon.txt");
  });
};

/** 
 * SWITCHES TO THE CHOICED FUNCTION
 * **/
const main = (option, or, dest) => {
  console.log("****** MAIN MENU ******");
  console.log("");

  switch (option) {
    case "ls":
      listFolder(or);
      break;

    default:
      help();
      break;
  }
};

/**
 * PRINTS AVAILABLE OPTIONS
 */
const help = () => {
  console.log(`
HELP:
  ls [dir]: list files of a directory by default the current directory
  mkdir:    create directory
  cp:       copy a file
`);
};

/******* MAIN SECTION *********/

const [frst, second, option, origin, destination] = process.argv;
const available = ["ls", "mkdir", "cp"];


if (!option || !available.includes(option)) help();
else main(option, origin, destination);

este curso esta super genial.

Mucho por practicar!

const fs = require("fs");
const fileSource = process.argv[2];
const fileDestination = process.argv[3];

if (!fileSource) throw new Error("File Source Required");
if (!fileDestination) throw new Error("File Destination Required");

fs.copyFile(fileSource, fileDestination, (err) => {
  if (err) {
    console.log(err);
  }
  console.log(`File ${fileSource} has been copied as ${fileDestination}`);
});```