Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

187
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda