English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial básico NodeJS

Express.js NodeJS

Buffer & URL NodeJS

MySql NodeJS

MongoDB NodeJS

Arquivo (FS) NodeJS

Outros NodeJS

Sistema de Arquivos (FS) Node.js

Node.js FS

O Node FS é um módulo integrado do Node.js que pode ajudar você a lidar com arquivos e operá-los.

Operações de arquivo NodeJs FS

Usando o Node FS, você pode executar as seguintes operações em arquivos:

  • Ler arquivo

  • Criar ou sobrescrever arquivo

  • Atualizar arquivo

  • 删除文件

  • Renomear arquivo

O Node.js oferece um conjunto de API de operação de arquivo semelhante ao padrão UNIX (POSIX). A sintaxe de importação do módulo de sistema de arquivos (fs) do Node é como mostrado a seguir:

var fs = require("fs")

Assíncrono e síncrono

Todos os métodos do módulo de sistema de arquivos do Node.js (módulo fs) têm versões assíncronas e síncronas, por exemplo, as funções de leitura de conteúdo de arquivo têm fs.readFile() assíncrono e fs.readFileSync() síncrono.

O último parâmetro da função do método assíncrono é a função de chamada de volta, o primeiro parâmetro da função de chamada de volta contém informações de erro (error).

Recomenda-se usar métodos assíncronos, pois eles têm melhor desempenho e velocidade em comparação com métodos síncronos, além de não bloquear.

Exemplo

Criar arquivo input.txt, o conteúdo é o seguinte:

Endereço do site do tutorial básico: pt.oldtoolbag.com
Exemplo de leitura de arquivo

Criar arquivo file.js, o código é o seguinte:

var fs = require("fs");
// Leitura assíncrona
fs.readFile('input.txt', function(err, data) {
   if (err) {
       return console.error(err);
   }
   console.log("Leitura assíncrona: "); + data.toString());
});
// Leitura síncrona
var data = fs.readFileSync('input.txt');
console.log("Leitura síncrona: "); + data.toString());
console.log("Execução do programa concluída.");

O resultado da execução do código acima é o seguinte:

$ node file.js 
Leitura síncrona: Endereço do site do tutorial básico: pt.oldtoolbag.com
Exemplo de leitura de arquivo
Execução do programa concluída.
Leitura assíncrona: Endereço do site do tutorial básico: pt.oldtoolbag.com
Exemplo de leitura de arquivo

A seguir, vamos entender melhor os métodos do sistema de arquivos do Node.js.

Abrir arquivo

Sintaxe

A seguir está o formato de sintaxe para abrir um arquivo em modo assíncrono:

fs.open(path, flags[, mode], callback)

Parâmetros

Instrução de uso dos parâmetros conforme abaixo:

  • path - Caminho do arquivo.

  • flags - Comportamento de abertura de arquivo. Valores específicos podem ser encontrados no texto a seguir.

  • mode - Definir o modo de arquivo (permissões), a permissão padrão de criação de arquivo é 0666(leitura, escrita).

  • callback - Função de callback, com dois parâmetros como: callback(err, fd).

Os valores do parâmetro flags podem ser os seguintes:

FlagDescrição
rAbre o arquivo em modo de leitura. Se o arquivo não existir, lança uma exceção.
r+Abre o arquivo em modo de leitura e escrita. Se o arquivo não existir, lança uma exceção.
rsLer o arquivo de forma síncrona.
rs+Ler e escrever no arquivo de forma síncrona.
wAbre o arquivo em modo de escrita, cria o arquivo se não existir.
wxsemelhante a 'w', mas se o caminho do arquivo existir, a escrita falhará.
w+Abre o arquivo em modo de leitura e escrita, cria o arquivo se não existir.
wx+semelhante a 'w+, mas se o caminho do arquivo existir, a leitura e escrita falharão.
aAbre o arquivo em modo de escrita anexada, cria o arquivo se não existir.
axsemelhante a 'a', mas se o caminho do arquivo existir, a anexação de arquivo falhará.
a+Abre o arquivo em modo de leitura anexada, cria o arquivo se não existir.
ax+semelhante a 'a+, mas se o caminho do arquivo existir, a leitura anexada falhará.

Exemplo

A seguir criamos o arquivo file.js e abrimos o arquivo input.txt para leitura e escrita, o código é o seguinte:

var fs = require("fs");
// Abertura assíncrona de arquivo
console.log("Preparando para abrir arquivo!");
fs.open('input.txt', 'r+', function(err, fd) {
   if (err) {
       return console.error(err);
   }
  console.log("Arquivo aberto com sucesso!");     
});

O resultado da execução do código acima é o seguinte:

$ node file.js 
准备打开文件!
文件打开成功!

Obter informações do arquivo

Sintaxe

A seguir está o formato de sintaxe para obter informações de arquivo de forma assíncrona:

fs.stat(path, callback)

Parâmetros

Instrução de uso dos parâmetros conforme abaixo:

  • path - Caminho do arquivo.

  • callback - Função de callback, com dois parâmetros como: (err, stats), stats é um objeto fs.Stats.

Após a execução de fs.stat(path), uma instância da classe Stats será retornada para a função de callback. Pode-se usar os métodos fornecidos pela classe stats para determinar as propriedades do arquivo. Por exemplo, determinar se é um arquivo:

var fs = require('fs');
fs.stat('/Users/liuht/code/itbilu/demo/fs.js', function (err, stats) {
    console.log(stats.isFile());         //true
)

Os métodos da classe stats incluem:

MétodoDescrição
stats.isFile()Se for um arquivo, retorna true; caso contrário, retorna false.
stats.isDirectory()Se for um diretório, retorna true; caso contrário, retorna false.
stats.isBlockDevice()Se for um dispositivo de bloco, retorna true; caso contrário, retorna false.
stats.isCharacterDevice()Se for um dispositivo de caractere, retorna true; caso contrário, retorna false.
stats.isSymbolicLink()Se for link simbólico retorna true, caso contrário retorna false.
stats.isFIFO()Se for FIFO, retorna true, caso contrário retorna false. FIFO é um tipo especial de pipe de comando no UNIX.
stats.isSocket()Se for Socket retorna true, caso contrário retorna false.

Exemplo

A seguir, criamos o arquivo file.js, conforme mostrado a seguir:

var fs = require("fs");
console.log("Preparando para abrir arquivo!");
fs.stat('input.txt', function(err, stats) {
   if (err) {
       return console.error(err);
   }
   console.log(stats);
   console.log("Sucesso na leitura das informações do arquivo!");
   
   // Detecção do tipo de arquivo
   console.log("É um arquivo (isFile) ? " + stats.isFile());
   console.log("É um diretório (isDirectory) ? " + stats.isDirectory());    
});

O resultado da execução do código acima é o seguinte:

$ node file.js 
准备打开文件!
{ dev: 16777220,
  mode: 33188,
  nlink: 1,
  uid: 501,
  gid: 20,
  rdev: 0,
  blksize: 4096,
  ino: 40333161,
  size: 61,
  blocks: 8,
  atime: Seg Mon Sep 07 2015 17:43:55 GMT+0800 (CST),
  mtime: Seg Mon Sep 07 2015 17:22:35 GMT+0800 (CST),
  ctime: Seg Mon Sep 07 2015 17:22:35 GMT+0800 (CST)}
Sucesso na leitura das informações do arquivo!
É um arquivo (isFile) ? true
É um diretório (isDirectory) ? false

Escrever arquivo

Sintaxe

A seguir está o formato de sintaxe para escrita assíncrona de arquivo:

fs.writeFile(file, data[, options], callback)

O writeFile abre diretamente o arquivo por padrão é w O modo, portanto, se o arquivo existir, o conteúdo escrito pelo método writeFile substituirá o conteúdo antigo do arquivo.

Parâmetros

Instrução de uso dos parâmetros conforme abaixo:

  • file - O nome do arquivo ou o descritor do arquivo.

  • data - Os dados a serem escritos no arquivo, podem ser String (string) ou objeto Buffer (buffer).

  • options - Este parâmetro é um objeto que contém {encoding, mode, flag}. A codificação padrão é utf8, o modo é 0666 , o flag é 'w'

  • callback - A função de callback, contém apenas o parâmetro de erro (err), e retorna ao falhar na escrita.

Exemplo

A seguir, criamos o arquivo file.js, conforme mostrado a seguir:

var fs = require("fs");
console.log("Preparando para escrever arquivo");
fs.writeFile('input.txt', 'Sou o conteúdo escrito por fs.writeFile', function(err) {
   if (err) {
       return console.error(err);
   }
   console.log("Escrita de dados bem-sucedida!");
   console.log("--------Sou uma linha divisória-------------")
   console.log("Ler dados escritos!");
   fs.readFile('input.txt', function(err, data) {
      if (err) {
         return console.error(err);
      }
      console.log("Leitura assíncrona de dados do arquivo: ", + data.toString());
   });
});

O resultado da execução do código acima é o seguinte:

$ node file.js 
Preparando para escrever arquivo
Escrita de dados bem-sucedida!
--------Sou uma linha divisória-------------
Ler dados escritos!
Leitura assíncrona de dados do arquivo: sou o conteúdo do arquivo escrito através de fs.writeFile

Ler arquivo

Sintaxe

A seguir está o formato de sintaxe para ler arquivo em modo assíncrono:

fs.read(fd, buffer, offset, length, position, callback)

Este método usa o descriptor de arquivo para ler o arquivo.

Parâmetros

Instrução de uso dos parâmetros conforme abaixo:

  • fd - Descriptor de arquivo retornado pelo método fs.open().

  • buffer - Buffer de dados para escrita.

  • offset - Deslocamento de escrita no buffer.

  • length - Número de bytes a serem lidos do arquivo.

  • position - Posição de leitura do arquivo, se o valor de position for null, será lido a partir da posição atual do ponteiro do arquivo.

  • callback - função de callback, com três parâmetros err, bytesRead, buffer, err para informações de erro, bytesRead para o número de bytes lidos, buffer para o objeto de buffer.

Exemplo

input.txt 文件内容为:

Endereço do site do tutorial básico: pt.oldtoolbag.com

A seguir, criamos o arquivo file.js, conforme mostrado a seguir:

var fs = require("fs");
var buf = new Buffer.alloc(1024);
console.log("Preparando para abrir arquivo existente!");
fs.open('input.txt', 'r+', function(err, fd) {
   if (err) {
       return console.error(err);
   }
   console.log("Arquivo aberto com sucesso!");
   console.log("Preparando para ler arquivo:");
   fs.read(fd, buf, 0, buf.length, 0, function(err, bytes){
      if (err) {
         console.log(err);
      }
      console.log(bytes + "Bytes lidos");
      
      // 仅输出读取的字节
      if (bytes > 0) {
         console.log(buf.slice(0, bytes).toString());
      }
   });
});

O resultado da execução do código acima é o seguinte:

$ node file.js 
Preparando para abrir arquivo existente!
文件打开成功!
Preparando para ler arquivo:
42  Bytes lidos
Endereço do site do tutorial básico: pt.oldtoolbag.com

关闭文件

Sintaxe

A seguir está o formato de sintaxe para fechar arquivo em modo assíncrono:

fs.close(fd, callback)

Este método usa o descriptor de arquivo para ler o arquivo.

Parâmetros

Instrução de uso dos parâmetros conforme abaixo:

  • fd - Descriptor de arquivo retornado pelo método fs.open().

  • callback - Função de callback, sem parâmetros.

Exemplo

input.txt 文件内容为:

Endereço do site do tutorial básico: pt.oldtoolbag.com

A seguir, criamos o arquivo file.js, conforme mostrado a seguir:

var fs = require("fs");
var buf = new Buffer.alloc(1024);
console.log("Preparando para abrir arquivo!");
fs.open('input.txt', 'r+', function(err, fd) {
   if (err) {
       return console.error(err);
   }
   console.log("Arquivo aberto com sucesso!");
   console.log("Preparando para ler arquivo!");
   fs.read(fd, buf, 0, buf.length, 0, function(err, bytes){
      if (err) {
         console.log(err);
      }
      // 仅输出读取的字节
      if (bytes > 0) {
         console.log(buf.slice(0, bytes).toString());
      }
      // 关闭文件
      fs.close(fd, function(err){
         if (err) {
            console.log(err);
         } 
         console.log("Arquivo fechado com sucesso");
      });
   });
});

O resultado da execução do código acima é o seguinte:

$ node file.js 
准备打开文件!
文件打开成功!
Preparando para ler arquivo!
Endereço do site do tutorial básico: pt.oldtoolbag.com
文件关闭成功

截取文件

Sintaxe

A seguir está o formato de sintaxe para cortar arquivos em modo assíncrono:

fs.ftruncate(fd, len, callback)

Este método usa o descriptor de arquivo para ler o arquivo.

Parâmetros

Instrução de uso dos parâmetros conforme abaixo:

  • fd - Descriptor de arquivo retornado pelo método fs.open().

  • len - Tamanho de corte do conteúdo do arquivo.

  • callback - Função de callback, sem parâmetros.

Exemplo

input.txt 文件内容为:

site:pt.oldtoolbag.com

A seguir, criamos o arquivo file.js, conforme mostrado a seguir:

var fs = require("fs");
var buf = new Buffer.alloc(1024);
console.log("Preparando para abrir arquivo!");
fs.open('input.txt', 'r+', function(err, fd) {
   if (err) {
       return console.error(err);
   }
   console.log("Arquivo aberto com sucesso!");
   10字节内的文件内容,超出部分将被去除。
   
   // 截取文件
   fs.ftruncate(fd, 10, function(err){
      if (err) {
         console.log(err);
      } 
      console.log("文件截取成功。");
      console.log("读取相同的文件"); 
      fs.read(fd, buf, 0, buf.length, 0, function(err, bytes){
         if (err) {
            console.log(err);
         }
         // 仅输出读取的字节
         if (bytes > 0) {
            console.log(buf.slice(0, bytes).toString());
         }
         // 关闭文件
         fs.close(fd, function(err){
            if (err) {
               console.log(err);
            } 
            console.log("文件关闭成功!");
         });
      });
   });
});

O resultado da execução do código acima é o seguinte:

$ node file.js 
准备打开文件!
文件打开成功!
截取10字节内的文件内容,超出部分将被去除。
文件截取成功。
读取相同的文件
site:www.r
文件关闭成功

删除文件

Sintaxe

以下为删除文件的语法格式:

fs.unlink(path, callback)

Parâmetros

Instrução de uso dos parâmetros conforme abaixo:

  • path - Caminho do arquivo.

  • callback - Função de callback, sem parâmetros.

Exemplo

input.txt 文件内容为:

site:pt.oldtoolbag.com

A seguir, criamos o arquivo file.js, conforme mostrado a seguir:

var fs = require("fs");
console.log("准备删除文件!");
fs.unlink('input.txt', function(err) {
   if (err) {
       return console.error(err);
   }
   console.log("文件删除成功!");
});

O resultado da execução do código acima é o seguinte:

$ node file.js 
准备删除文件!
文件删除成功!

再去查看 input.txt 文件,发现已经不存在了。

创建目录

Sintaxe

以下为创建目录的语法格式:

fs.mkdir(path[, options], callback)

Parâmetros

Instrução de uso dos parâmetros conforme abaixo:

  • path - Caminho do arquivo.

  • options 参数可以是:

    • recursive - 是否以递归的方式创建目录,默认为 false。

    • mode - 设置目录权限,默认为 0777.

  • callback - Função de callback, sem parâmetros.

Exemplo

A seguir, criamos o arquivo file.js, conforme mostrado a seguir:

var fs = require("fs");
// tmp 目录必须存在
console.log("创建目录 /tmp/test/");
fs.mkdir("/tmp/test/
   if (err) {
       return console.error(err);
   }
   console.log("目录创建成功。");
});

O resultado da execução do código acima é o seguinte:

$ node file.js 
创建目录 /tmp/test/
目录创建成功。

可以添加  recursive: true 参数,不管创建的目录  /tmp 和 /tmp/a 是否存在:

fs.mkdir('/tmp/a/apple', { recursive: true }, (err) => {
  if (err) throw err;
});

Ler diretório

Sintaxe

A seguir, o formato de sintaxe para ler diretório é:

fs.readdir(path, callback)

Parâmetros

Instrução de uso dos parâmetros conforme abaixo:

  • path - Caminho do arquivo.

  • callback - Função de callback, a função de callback possui dois parâmetros err, files, err é a mensagem de erro, files é a lista de arrays de arquivos no diretório.

Exemplo

A seguir, criamos o arquivo file.js, conforme mostrado a seguir:

var fs = require("fs");
console.log("Ver /Pasta tmp
fs.readdir("/tmp/",function(err, files){
   if (err) {
       return console.error(err);
   }
   files.forEach(function(file){
       console.log(file);
   });
});

O resultado da execução do código acima é o seguinte:

$ node file.js 
Ver /Pasta tmp
input.out
output.out
test
test.txt

Excluir diretório

Sintaxe

A seguir, o formato de sintaxe para exclusão de diretório é:

fs.rmdir(path, callback)

Parâmetros

Instrução de uso dos parâmetros conforme abaixo:

  • path - Caminho do arquivo.

  • callback - Função de callback, sem parâmetros.

Exemplo

A seguir, criamos o arquivo file.js, conforme mostrado a seguir:

var fs = require("fs");
// Antes de executar, crie um diretório vazio /tmp/Pasta test
console.log("Preparar para excluir diretório /tmp/test");
fs.rmdir("/tmp/test", function(err){
   if (err) {
       return console.error(err);
   }
   console.log("Ler /Pasta tmp
   fs.readdir("/tmp/",function(err, files){
      if (err) {
          return console.error(err);
      }
      files.forEach(function(file){
          console.log(file);
      });
   });
});

O resultado da execução do código acima é o seguinte:

$ node file.js 
Preparar para excluir diretório /tmp/test
Ler /Pasta tmp
……

Manual de referência de métodos do módulo de arquivo

A seguir, lista de métodos do módulo de arquivo do Node.js:

Número de ordemMétodo & Descrição
1fs.rename(oldPath, newPath, callback)
rename() assíncrono. A função de callback não tem parâmetros, mas pode lançar exceções.
2fs.ftruncate(fd, len, callback)
ftruncate() assíncrono. A função de callback não tem parâmetros, mas pode lançar exceções.
3fs.ftruncateSync(fd, len)
ftruncate() síncrono
4fs.truncate(path, len, callback)
A função de callback de truncate(). Não há parâmetros, mas pode lançar exceções.
5fs.truncateSync(path, len)
Sincronizar truncate().
6fs.chown(path, uid, gid, callback)
Assíncrono chown(). A função de callback não tem parâmetros, mas pode lançar exceções.
7fs.chownSync(path, uid, gid)
Sincronizar chown().
8fs.fchown(fd, uid, gid, callback)
Assíncrono fchown(). A função de callback não tem parâmetros, mas pode lançar exceções.
9fs.fchownSync(fd, uid, gid)
Sincronizar fchown().
10fs.lchown(path, uid, gid, callback)
Assíncrono lchown(). A função de callback não tem parâmetros, mas pode lançar exceções.
11fs.lchownSync(path, uid, gid)
Sincronizar lchown().
12fs.chmod(path, mode, callback)
Assíncrono chmod(). A função de callback não tem parâmetros, mas pode lançar exceções.
13fs.chmodSync(path, mode)
Sincronizar chmod().
14fs.fchmod(fd, mode, callback)
Assíncrono fchmod(). A função de callback não tem parâmetros, mas pode lançar exceções.
15fs.fchmodSync(fd, mode)
Sincronizar fchmod().
16fs.lchmod(path, mode, callback)
Assíncrono lchmod(). A função de callback não tem parâmetros, mas pode lançar exceções. Apenas disponível no Mac OS X.
17fs.lchmodSync(path, mode)
Sincronizar lchmod().
18fs.stat(path, callback)
Assíncrono stat(). A função de callback tem dois parâmetros err, stats, onde stats é um objeto fs.Stats.
19fs.lstat(path, callback)
Assíncrono lstat(). A função de callback tem dois parâmetros err, stats, onde stats é um objeto fs.Stats.
20fs.fstat(fd, callback)
Assíncrono fstat(). A função de callback tem dois parâmetros err, stats, onde stats é um objeto fs.Stats.
21fs.statSync(path)
Sincronizar stat(). Retorna uma instância de fs.Stats.
22fs.lstatSync(path)
Sincronizado lstat(). Retorna uma instância do fs.Stats.
23fs.fstatSync(fd)
Sincronizado fstat(). Retorna uma instância do fs.Stats.
24fs.link(srcpath, dstpath, callback)
Assíncrono link(). A função de callback não possui parâmetros, mas pode lançar exceções.
25fs.linkSync(srcpath, dstpath)
Sincronizado link().
26fs.symlink(srcpath, dstpath[, type], callback)
Assíncrono symlink(). A função de callback não possui parâmetros, mas pode lançar exceções. O parâmetro type pode ser configurado para 'dir', 'file', ou 'junction' (padrão 'file').
27fs.symlinkSync(srcpath, dstpath[, type])
Sincronizado symlink().
28fs.readlink(path, callback)
Assíncrono readlink(). A função de callback possui dois parâmetros err, linkString.
29fs.realpath(path[, cache], callback)
Assíncrono realpath(). A função de callback possui dois parâmetros err, resolvedPath.
30fs.realpathSync(path[, cache])
Sincronizado realpath(). Retorna o caminho absoluto.
31fs.unlink(path, callback)
Assíncrono unlink(). A função de callback não possui parâmetros, mas pode lançar exceções.
32fs.unlinkSync(path)
Sincronizado unlink().
33fs.rmdir(path, callback)
Assíncrono rmdir(). A função de callback não possui parâmetros, mas pode lançar exceções.
34fs.rmdirSync(path)
Sincronizado rmdir().
35fs.mkdir(path[, mode], callback)
Assíncrono mkdir(2). A função de callback não possui parâmetros, mas pode lançar exceções. O acesso padrão é 0777.
36fs.mkdirSync(path[, mode])
Sincronizado mkdir().
37fs.readdir(path, callback)
Assíncrono readdir(3). Lê o conteúdo do diretório.
38fs.readdirSync(path)
Sincronizado readdir(). Retorna uma lista de arrays de arquivos.
39fs.close(fd, callback)
Versão assíncrona do close(). A função de callback não possui parâmetros, mas pode lançar exceções.
40fs.closeSync(fd)
Versão síncrona do close().
41fs.open(path, flags[, mode], callback)
Abrir arquivo de forma assíncrona.
42fs.openSync(path, flags[, mode])
Versão síncrona do fs.open().
43fs.utimes(path, atime, mtime, callback)
 
44fs.utimesSync(path, atime, mtime)
Modificar o timestamp do arquivo, o arquivo é especificado pelo caminho do arquivo.
45fs.futimes(fd, atime, mtime, callback)
 
46fs.futimesSync(fd, atime, mtime)
Modificar o timestamp do arquivo, especificado pelo descritor de arquivo.
47fs.fsync(fd, callback)
Versão assíncrona do fsync. A função de callback não possui parâmetros, mas pode lançar exceções.
48fs.fsyncSync(fd)
Versão síncrona do fsync.
49fs.write(fd, buffer, offset, length[, position], callback)
Escrever o conteúdo do buffer para o arquivo especificado pelo descritor de arquivo.
50fs.write(fd, data[, position[, encoding]], callback)
Escrever o conteúdo do arquivo através do descritor de arquivo fd.
51fs.writeSync(fd, buffer, offset, length[, position])
Versão síncrona do fs.write()。
52fs.writeSync(fd, data[, position[, encoding]])
Versão síncrona do fs.write().
53fs.read(fd, buffer, offset, length, position, callback)
Ler o conteúdo do arquivo através do descritor de arquivo fd.
54fs.readSync(fd, buffer, offset, length, position)
Versão síncrona do fs.read.
55fs.readFile(filename[, options], callback)
Ler o conteúdo do arquivo de forma assíncrona.
56fs.readFileSync(filename[, options])
Versão síncrona do fs.readFile.
57fs.writeFile(filename, data[, options], callback)
Escreve conteúdo no arquivo de forma assíncrona.
58fs.writeFileSync(filename, data[, options])
Versão síncrona do fs.writeFile.
59fs.appendFile(filename, data[, options], callback)
Adiciona conteúdo ao arquivo de forma assíncrona.
60fs.appendFileSync(filename, data[, options])
Versão síncrona do fs.appendFile.
61fs.watchFile(filename[, options], listener)
Verifica as alterações no arquivo.
62fs.unwatchFile(filename[, listener])
Para de verificar as alterações no filename.
63fs.watch(filename[, options][, listener])
Verifica as alterações no filename, que pode ser um arquivo ou diretório. Retorna um objeto fs.FSWatcher.
64fs.exists(path, callback)
Verifica se o caminho fornecido existe.
65fs.existsSync(path)
Versão síncrona do fs.exists.
66fs.access(path[, mode], callback)
Testa as permissões do usuário no caminho especificado.
67fs.accessSync(path[, mode])
Versão síncrona do fs.access.
68fs.createReadStream(path[, options])
Retorna um objeto ReadStream.
69fs.createWriteStream(path[, options])
Retorna um objeto WriteStream.
70fs.symlink(srcpath, dstpath[, type], callback)
A função síncrona symlink(). A função de callback não tem parâmetros, mas pode lançar exceções.

Para mais informações, consulte a descrição do módulo do Sistema de Arquivos no site oficial:Sistema de Arquivos.