Necesito leer un archivo JSON dinámicamente. Es por eso que require() no lo cortará. No solo actualiza el archivo hasta que se reinicia el servidor NodeJS. Es por eso que tengo que usar fs.readFile o fs.readFileSync .
Cuando uso, const data = require("../data.json"); simplemente lo lee correctamente. No hay ningún problema, pero como dije, no se actualiza dinámicamente.
Cuando uso const data = () => fs.readFileSync("../data.json", { encoding: "utf8" }); simplemente devuelve Error: ENOENT: no such file or directory, open '../data.json'
También probé fs.readFile . no funciona
Lo más extraño es que cuando trato de leer otro archivo json con fs.readFileSync , veo valores que cambié hace días. Se lee una versión antigua. No entiendo. Esa versión anterior ya no existe. Revisé manualmente.
npm install , npm cache clean --force . No puedo pensar en nada más.
require toma una ruta relativa al directorio en el que se encuentra el archivo del módulo.
readFileSync toma una ruta relativa al directorio de trabajo actual .
Estos deben ser diferentes para usted.
Considere usar path.resolve con su ruta relativa y__dirname
Probablemente esté buscando require.resolve si está trabajando con módulos CommonJS en Node. Esto utilizará las partes internas de require para proporcionar la cadena de ruta absoluta al archivo que desea leer.
Fuente: https://nodejs.org/api/modules.html#requireresolverequest-options