Módulo do sistema de arquivos Node.js


Node.js como servidor de arquivos

O módulo do sistema de arquivos Node.js permite trabalhar com o sistema de arquivos em seu computador.

Para incluir o módulo File System, use o require()método:

var fs = require('fs');

Uso comum para o módulo File System:

  • Ler arquivos
  • Criar arquivos
  • Atualizar arquivos
  • Deletar arquivos
  • Renomear arquivos

Ler arquivos

O fs.readFile()método é usado para ler arquivos em seu computador.

Suponha que temos o seguinte arquivo HTML (localizado na mesma pasta do Node.js):

demofile1.html

<html>
<body>
<h1>My Header</h1>
<p>My paragraph.</p>
</body>
</html>

Crie um arquivo Node.js que leia o arquivo HTML e retorne o conteúdo:

Exemplo

var http = require('http');
var fs = require('fs');
http.createServer(function (req, res) {
  fs.readFile('demofile1.html', function(err, data) {
    res.writeHead(200, {'Content-Type': 'text/html'});
    res.write(data);
    return res.end();
  });
}).listen(8080);

Salve o código acima em um arquivo chamado "demo_readfile.js" e inicie o arquivo:

Inicie demo_readfile.js:

C:\Users\Your Name>node demo_readfile.js

Se você seguiu as mesmas etapas em seu computador, verá o mesmo resultado do exemplo: http://localhost:8080



Criar arquivos

O módulo File System possui métodos para criar novos arquivos:

  • fs.appendFile()
  • fs.open()
  • fs.writeFile()

O fs.appendFile()método anexa o conteúdo especificado a um arquivo. Se o arquivo não existir, o arquivo será criado:

Exemplo

Crie um novo arquivo usando o método appendFile():

var fs = require('fs');

fs.appendFile('mynewfile1.txt', 'Hello content!', function (err) {
  if (err) throw err;
  console.log('Saved!');
});

O fs.open()método recebe um "flag" como segundo argumento, se o sinalizador for "w" para "escrever", o arquivo especificado é aberto para gravação. Se o arquivo não existir, um arquivo vazio será criado:

Exemplo

Crie um novo arquivo vazio usando o método open():

var fs = require('fs');

fs.open('mynewfile2.txt', 'w', function (err, file) {
  if (err) throw err;
  console.log('Saved!');
});

O fs.writeFile()método substitui o arquivo e o conteúdo especificados, se existir. Se o arquivo não existir, um novo arquivo, contendo o conteúdo especificado, será criado:

Exemplo

Crie um novo arquivo usando o método writeFile():

var fs = require('fs');

fs.writeFile('mynewfile3.txt', 'Hello content!', function (err) {
  if (err) throw err;
  console.log('Saved!');
});

Atualizar arquivos

O módulo File System possui métodos para atualizar arquivos:

  • fs.appendFile()
  • fs.writeFile()

O fs.appendFile()método anexa o conteúdo especificado no final do arquivo especificado:

Exemplo

Anexar "Este é o meu texto." ao final do arquivo "mynewfile1.txt":

var fs = require('fs');

fs.appendFile('mynewfile1.txt', ' This is my text.', function (err) {
  if (err) throw err;
  console.log('Updated!');
});

O fs.writeFile()método substitui o arquivo e o conteúdo especificados:

Exemplo

Substitua o conteúdo do arquivo "mynewfile3.txt":

var fs = require('fs');

fs.writeFile('mynewfile3.txt', 'This is my text', function (err) {
  if (err) throw err;
  console.log('Replaced!');
});

Deletar arquivos

Para excluir um arquivo com o módulo File System, use o fs.unlink() método.

O fs.unlink()método exclui o arquivo especificado:

Exemplo

Excluir "meunovoarquivo2.txt":

var fs = require('fs');

fs.unlink('mynewfile2.txt', function (err) {
  if (err) throw err;
  console.log('File deleted!');
});

Renomear arquivos

Para renomear um arquivo com o módulo File System, use o fs.rename() método.

O fs.rename()método renomeia o arquivo especificado:

Exemplo

Renomeie "mynewfile1.txt" para "myrenamedfile.txt":

var fs = require('fs');

fs.rename('mynewfile1.txt', 'myrenamedfile.txt', function (err) {
  if (err) throw err;
  console.log('File Renamed!');
});

Fazer upload de arquivos

Você também pode usar o Node.js para fazer upload de arquivos para seu computador.

Leia como em nosso capítulo de upload de arquivos do Node.js.