Usando o windows meu código atualmente eu uso:
var file = JSON.parse(fs.readFileSync(filePath), "utf8");
file[id] = JSON.parse(`{"name":name}`);
fs.writeFileSync(filePath, JSON.stringify(file,null,2);
Isso funciona muito bem no windows. No entanto, quando transfiro este código para minha máquina linux para testes entre plataformas. O arquivo não é atualizado até que eu pare de executar o aplicativo.
O que eu tentei:
executando "chmod -r 0777 path / to / dir /"
e
verifiquei se era devido ao limite máximo de arquivos abertos (não é o caso, pois meu limite é extremamente grande)
Linux: Mint-Linux 4.10.0-38-genérico # 42 ~ 16.04.1-Ubuntu (do uname -a)
Nó: 8.10.0
Editor: intelliJ ideia
Im também executando o código diretamente do botão de execução em intelliJ, não tenho certeza se esta pode ser a causa, se é a causa por que isso seria o caso.
Respostas:
0 para resposta № 1Adicionar a opção {mode: 0o777} como o último argumento na gravação corrigiu os arquivos que não foram atualizados.