Estoy usando Fs para guardar algunos datos en un archivo. Empiezo por tener 0 en la primera línea y 0 en la segunda línea. Entonces quiero agregar por uno la segunda línea. Y a veces, después de algunos intentos (aleatorios, a veces 100 y otras 700), sucede algo que conduce a la primera línea vacía y NaN en la segunda. El código:
const Discord = require("discord.js"); const fs = require('fs'); module.exports = { name: "testkom", aliases: [], async execute(message, args, client) { var data = fs.readFileSync('peakcommands.txt').toString().split("\n"); data[1]++; var text = data.join("\n"); fs.writeFile('peakcommands.txt', text, function (err) { if (err) return console.log(err); }); message.channel.send (data[1]); } }Creo que podría ser un problema de codificación o posiblemente una carrera de datos.
Para corregir la posible condición de carrera, cambie fs.writeFile a fs.writeFileSync , lo que asegurará que la escritura del archivo sea síncrona.
Para solucionar el problema de codificación, puede especificar la codificación, así:
fs.writeFileSync('peakcommands.txt', 'utf8' text, function (err) { if (err) return console.log(err); });Si nada funciona, consulte los documentos .