Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

188
Views
¿Cómo puedo escribir la salida de cadena de un módulo a un archivo en un archivo node.js separado?

Estoy empezando a aprender node.js (literalmente, mi segunda tarea) y necesito escribir dos módulos (uno para números primos menores de 100 y otro para números pares menores de 50; este es un requisito separado). El siguiente requisito es importar estos módulos a un archivo node.js y escribir los resultados en el archivo 'nums.txt'. Si escribo cadenas directas en archivos y ejecuto pruebas en ellos, se ejecuta perfectamente, pero cuando intento escribir Array.toString() en el archivo, obtengo

TypeError [ERR_INVALID_ARG_TYPE]: el argumento de "datos" debe ser de tipo cadena o una instancia de Buffer, TypedArray o DataView. Función de tipo recibido ([Función (anónima)])

¿Qué me estoy perdiendo? Leí la mayoría de las preguntas aquí, revisé la documentación e intenté todo, desde cambiar las declaraciones de devolución de mi módulo e incluso intentar agregar toString en el controlador de archivos.

Estos son los módulos:

 exports.primes = () => { const isPrime = () => { let sieve = [], i, j, n = 100, primeArr = []; for (i = 2; i < n; ++i) { if (!sieve[i]) { primeArr.push(i); for (j = i << 1; j <= n; j += i) { sieve[j] = true; } } } console.log(primeArr); return primeArr.toString(); }; isPrime(); }; exports.evenNums = () => { const isEven = () => { let n = 50; let evenArr = []; if (n === 1 || n === 0) { return false; } for (let i = 2; i <= n; ++i) { if (i % 2 === 0) { //console.log(i); evenArr.push(i); } } return evenArr.toString(); }; isEven(); };

Mi archivo Node.js

 const primeN = require("./primes"); const evenN = require("./evenNums"); const fileHandler = require("fs"); const http = require("http"); const prime = primeN.primes(); const even = evenN.evenNums(); fileHandler.writeFile("nums.txt", prime, (err) => { if (err) { console.log("File not written\n"); } else { console.log("File written successfully\n"); console.log("The file has the following contents:"); console.log(fileHandler.readFileSync("nums.txt")); } fileHandler.appendFile("nums.txt", even, (err) => { if (err) { console.log("File not written\n"); } else { console.log("File written successfully\n"); console.log("The file has the following contents:"); console.log(fileHandler.readFileSync("nums.txt")); } }); }); http .createServer(function(req, res) { res.write("nums.txt"); res.end(); }) .listen(8000);

Solo sé que es algo simple que me estoy perdiendo, pero parece que no puedo resolverlo. Cualquier consejo sobre la depuración de Node.js también sería muy apreciado.

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Hay una función dentro de la función primes . Aunque isPrime devuelve una cadena, pero la función primes devuelve undefined .

 exports.primes = () => { const isPrime = () => { let sieve = [], i, j, n = 100, primeArr = []; for (i = 2; i < n; ++i) { if (!sieve[i]) { primeArr.push(i); for (j = i << 1; j <= n; j += i) { sieve[j] = true; } } } console.log(primeArr); return primeArr.toString(); }; // return value from isPrime return isPrime(); };
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!