O módulo fs (File System) em Node.js é uma ferramenta poderosa para trabalhar com o sistema de arquivos, permitindo que você interaja com arquivos e diretórios em seu servidor. Ele está integrado ao Node.js, então você não precisa instalar nada extra para usá-lo. Vamos explorar como o fs funciona e suas principais funções.
O módulo fs fornece uma API para interagir com o sistema de arquivos de uma maneira modelada em torno de funções POSIX padrão. Este módulo é usado para tarefas como leitura e gravação em arquivos, criação de diretórios e muito mais.
Para usar o módulo fs, você precisa solicitá-lo no início do seu script Node.js:
const fs = require('fs');
Existem duas maneiras principais de ler arquivos: de forma assíncrona e síncrona.
Este método não bloqueia, o que significa que não interromperá a execução do seu programa enquanto lê o arquivo.
fs.readFile('example.txt', 'utf8', (err, data) => { if (err) { console.error(err); return; } console.log(data); });
Este método é bloqueador, o que significa que interromperá a execução do seu programa até que o arquivo seja lido.
try { const data = fs.readFileSync('example.txt', 'utf8'); console.log(data); } catch (err) { console.error(err); }
Semelhante à leitura de arquivos, a gravação também pode ser feita de forma assíncrona ou síncrona.
fs.writeFile('example.txt', 'Hello, World!', (err) => { if (err) { console.error(err); return; } console.log('File has been saved!'); });
try { fs.writeFileSync('example.txt', 'Hello, World!'); console.log('File has been saved!'); } catch (err) { console.error(err); }
Se você deseja adicionar conteúdo a um arquivo existente sem substituí-lo, use o método appendFile.
fs.appendFile('example.txt', '\nAppended Content', (err) => { if (err) { console.error(err); return; } console.log('Content has been appended!'); });
try { fs.appendFileSync('example.txt', '\nAppended Content'); console.log('Content has been appended!'); } catch (err) { console.error(err); }
Para excluir um arquivo, use o método de desvinculação.
fs.unlink('example.txt', (err) => { if (err) { console.error(err); return; } console.log('File deleted!'); });
try { fs.unlinkSync('example.txt'); console.log('File deleted!'); } catch (err) { console.error(err); }
fs.mkdir('newDir', { recursive: true }, (err) => { if (err) { console.error(err); return; } console.log('Directory created!'); });
fs.readdir('newDir', (err, files) => { if (err) { console.error(err); return; } console.log('Files in directory:', files); });
fs.rmdir('newDir', { recursive: true }, (err) => { if (err) { console.error(err); return; } console.log('Directory deleted!'); });
Você pode observar alterações em um arquivo usando o método fs.watch:
fs.watch('example.txt', (eventType, filename) => { if (filename) { console.log(`${filename} file Changed!`); } });
Node.js fornece fluxos fs para lidar com arquivos grandes que podem não caber na memória.
const readStream = fs.createReadStream('example.txt', 'utf8'); readStream.on('data', (chunk) => { console.log(chunk); });
const writeStream = fs.createWriteStream('example.txt'); writeStream.write('Hello, '); writeStream.write('World!'); writeStream.end();
Node.js fornece um método simples para copiar arquivos:
fs.copyFile('source.txt', 'destination.txt', (err) => { if (err) { console.error(err); return; } console.log('File copied successfully!'); });
O módulo fs também possui métodos baseados em promessas, facilitando o trabalho com recursos JavaScript modernos, como async/await.
const fsPromises = require('fs').promises; async function readFile() { try { const data = await fsPromises.readFile('example.txt', 'utf8'); console.log(data); } catch (err) { console.error(err); } } readFile();
O módulo fs é versátil e essencial para qualquer aplicativo Node.js que precise interagir com o sistema de arquivos. Ao compreender seus vários métodos, manipular fluxos de maneira eficiente e empregar as práticas recomendadas, você estará bem equipado para gerenciar operações de arquivos em Node.js de maneira eficaz e segura.
Lembre-se de consultar a documentação oficial do Node.js para obter as informações mais atualizadas e recursos adicionais do módulo fs.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3