Vous êtes sur la page 1sur 6

Bases

Vamos a iniciar con un for de la tabla Nº2


¿Será Facil?
let base=2;
for(let i=1;i<=10;i++){
console.log(`${base} * ${i} = ${base*i} `);

}
Vamos a ver que nos da de respuesta

Qué tal si yo quiero guardar el archivo en .txt


Requerir paquetes-required

Node nos permite guardar en este formato para ello vamos a a la Documentación de

node según la versión que tengamos, en mmi caso tengo v10.x y vamos a
Clic allí y luego a
Ahora nos copiamos el código const fs = require('fs');
Ese indica que vamos a requerir quedando el código así:
//todos los requireds
const fs = require('fs');
let base=2;
for(let i=1;i<=10;i++){
console.log(`${base} * ${i} = ${base*i} `);

}
fs.writeFile('tabla-2.txt', 'Hola esto es la tabla del 2', (err) => {
if (err) throw err;
console.log('Grabó la tabla-2.txt con exito');
});
Si observamos el archivo tabla-2.txt queda de la siguiente manera
No queremos que nos guarde ese letrero queremos es guardar es la tabla del dos
¿Cómo lo haremos? Pues sencillo
//todos los requireds
const fs = require('fs');
let base=2;
let datos='';
for(let i=1;i<=10;i++){
datos+=(`${base} * ${i} = ${base*i} `);

}
fs.writeFile('tablaMult-2.txt', datos, (err) => {
if (err) throw err;
console.log('Grabó la tabla-2.txt con exito');
});
Pero el resultado no es como lo queremos,

Nos da todo en una sola línea, ¿qué debo hacer para arreglarlo?
Solamente debemos agregar un backslash y n \n

Y la respuesta se verá diferente


Pero qué pasará si quiero cambiar la base por 5?
Ocurren varios errores:
Primero,
Se guarda el Archivo con el nombre de ,
Segundo
Aparece el mensaje de

Cada uno debe solucionar esta parte


Solución
//todos los requireds
const fs = require('fs');
let base=5;
let datos='';
for(let i=1;i<=10;i++){
datos+=(`${base} * ${i} = ${base*i}\n`);

}
fs.writeFile(`tabla-${base}.txt'`, datos, (err) => {
if (err) throw err;
console.log(`Grabó la tabla-${base}.txt con exito`);
});
Ojo instalar nodemon npm install -g nodemon
Ok, vamos a guardar esos ejercicios en una carpeta en especial llamada tablas que está
en la misma nivel de la carpeta donde estoy metido bases
Como haría el archivo, modificaríamos únicamente donde va fs.writeFile(`tabla-
${base}
Esto sería todo.
Importar archivos de nuestro proyecto
Vamos a ir organizando todo nuestro programa y trabajemos la lógica diferente, hagamos
una carpeta llamada Multiplicar y dentro de esta carpeta vamos a crear un archivo
llamado multiplicar.js
Del archivo anterior que se llamaba tabla.js nos cortamos el siguiente código o lo
comentamos
let datos='';
for(let i=1;i<=10;i++){
datos+=`${base} * ${i} = ${base*i}\n `;

}
fs.writeFile(`../tablas/tabla-${base}.txt'`, datos, (err) => {
if (err) throw err;
console.log(`Grabó la tabla-${base}.txt con exito`);
});
Y lo pegamos en multiplicar.js. lo mismo hacemos con el require
//todos los requireds
const fs = require('fs');

Y la primera parte que copiamos y pegamos la vamos a convertir en una función


//todos los requireds
const fs = require('fs');
//crear la promesa
let crearArchivos=(base)=>{
return new Promise((resolve,reject)=>{
let datos='';
for(let i=1;i<=10;i++){
datos+=`${base} * ${i} = ${base*i}\n `;

}
fs.writeFile(`../tablas/tabla-${base}.txt'`, datos, (err) => {//este
sería el reject es decir lo no verdadero
if (err)
reject (err);
else
//este sería el resolve, el cual esta esperando el nombre del
archivo
resolve(`tabla-${base}.txt`)

});
});
}
Para poderlo llamar desde otro archivo nos toca exportarlo así:
//vamos a exportar el archivo con module
module.exports={
crearArchivos

}
Lo anterior se coloca al final del código
Ya lo puedo llamar desde el otro archivo así:
const mutiplico=require('../multiplicar/multiplicar');
let base=6;
console.log(mutiplico);
Y al final esto imprimiendo la variable multiplico

Esta sería la respuesta, donde


crearArchivos tiene una propiedad que es una función
Pero en node podemos utilizar la destructuración y la vamos a emplear, miremos
const {crearArchivos}=require('../multiplicar/multiplicar');
let base=7;

crearArchivos(base)
.then(archivo=>console.log(`archivo creado ${archivo}`));

Si la base no es un número no se pueda hacer nada


let crearArchivos=(base)=>{
return new Promise((resolve,reject)=>{
if(!Number(base)){
reject('No es un número')
return
}
let datos='';
for(let i=1;i<=10;i++){
datos+=`${base} * ${i} = ${base*i}\n `;

}
fs.writeFile(`../tablas/tabla-${base}.txt'`, datos, (err) => {//este
sería el reject es decir lo no verdadero
if (err)
reject (err);
else
//este sería el resolve, el cual esta esperando el nombre del
archivo
resolve(`tabla-${base}.txt`)

});
});
}
//vamos a exportar el archivo con module
module.exports={
crearArchivos

}
Cambio el valor de la variable base

Al ejecutar nos da el resultado, pero se muestra error por no manejar el catch


Modificamos el código con el .catch así

Recibir parámetros desde la terminal

Vous aimerez peut-être aussi