No sé qué estoy haciendo mal. He hecho todo 'perfecto' desde mi conocimiento.
El error está ocurriendo en writeParams. ¿Por qué está pasando esto?
Código
const fs = require('fs'); const path = require('path'); const paramsPath = path.join(__dirname, 'params.json') function writeParams(data) { console.log("Writing params.json file. . .", data); return fs.writeFileSync(paramsPath, JSON.stringify(data)) } function readParams() { console.log("Reading 'params.json' file. . ."); const data = fs.readFileSync(paramsPath); return JSON.parse(data.toString()); }Error
TypeError [ERR_INVALID_ARG_TYPE]: el argumento de "datos" debe ser de tipo cadena o una instancia de Buffer, TypedArray o DataView. Recibido sin definir en Object.writeFileSync (nodo:fs:2146:5) en writeParams (E:\TB\JS\index.js:8:15) en Timeout.main [como _onTimeout] (E:\TB\JS\index .js:85:9) en processTicksAndRejections (nodo:internal/process/task_queues:96:5)
Recreé tu error. Su código es completamente válido y funciona siempre que pase writeParams un objeto Javascript válido. La única forma en que podría ocurrir su error sería si olvidara proporcionar algunos datos a writeParams.
Errores como este ocurren a menudo y pueden ser extremadamente frustrantes. Si se siente demasiado frustrado con un programa, su capacidad para solucionar el problema puede verse obstaculizada. Recomiendo hacer otras tareas (salir a caminar, lavar la montaña de platos en el fregadero, etc.) y volver a programar la próxima vez que ocurra un error como este.
Aquí está mi código de prueba:
const fs = require('fs'); const path = require('path'); const paramsPath = path.join(__dirname, 'params.json') function writeParams(data) { console.log("Writing params.json file. . .", data); return fs.writeFileSync(paramsPath, JSON.stringify(data)) } function readParams() { console.log("Reading 'params.json' file. . ."); const data = fs.readFileSync(paramsPath); return JSON.parse(data.toString()); } writeParams({foo: "bar"}) console.dir(readParams())