Estoy ejecutando un servidor con NodeJS y manteniendo una cuenta. Dado que las cuentas se mantienen en el mapa, el mapa desaparece cuando se reinicia el servidor. Prefiero usar 'fs' para resolver esto. Cuando se inicie el servidor, tómelo de una carpeta guardada y configúrelo para mapear y guarde el mapa en una carpeta cada 30 segundos. ¿Cómo puedo hacer esto o tienes alguna otra idea?
Si usa objetos JS en lugar del map , puede usar el método JSON.stringify para convertir el objeto en una cadena y luego almacenarlo en el sistema de archivos. Imagina algo como esto:
const database = {"user1": {"some": "data"}, "user2": {"some": "data"}}; const serializedDatabase = JSON.stringify(database); fs.writeFileSync("./data/database.json", serializedDatabase); Puede ejecutar este código dentro del bucle setInterval para que se ejecute cada 30 segundos:
setInterval(() => { const serializedDatabase = JSON.stringify(database); fs.writeFileSync("./data/database.json", serializedDatabase); }, 30 * 1000); Luego, si desea leer los datos una vez que inicie su aplicación, solo require el archivo:
const database = require("./data/database.json");Obtendrá sus datos en la memoria. Algunos puntos:
writeFile probablemente debería usarse en lugar de writeFileSync para que no bloquee.