File System — Модуль FS: Работа с файлами в Node.js

File System — Модуль FS: Работа с файлами в Node.js
5 (100%) 3 votes

Для работы с файлами в Node.js необходимо подключить модуль FS (File System). После подключения модуля FS мы в переменную получим объект, который имеет методы для работы с файлами и директориями. Все методы имеют асинхронные и синхронные версии.

Асинхронные методы в качестве последнего параметра всегда принимают функцию обратного вызова (callback функцию). Функция обратного вызова принимает одну или несколько параметров. Первый параметр функции практически во всех методах указывается. Если при работе метода возникает ошибка, например, если мы хотим читать файл и адрес файла указан неправильно, то в первом параметре функции обратного вызова будет информация об ошибке, в противном случае в первом параметре будет значения null.

Ниже приведен пример работы асинхронной и синхронной версии.

Асинхронная версия: Удаление файла test.txt из директории tmp с помощью метода unlink().

'use strict';
const fs = require('fs');

fs.unlink('/tmp/test.txt', (err) => {
  if(err) throw err;
  console.log('Файл /tmp/test.txt успешно удален');
});

 Синхронная версия: Удаление файла test.txt из директории tmp с помощью метода unlinkSync().

'use strict';
const fs = require('fs');

fs.unlinkSync('/tmp/test.txt');
console.log('Файл /tmp/test.txt успешно удален');

В нагруженных проектах рекомендуется всегда использовать асинхронные методы. При выполнения синхронных методов, весь процесс блокируется, пока не будет выполнен синхронный метод.

Ниже приведен список методов и классов модуля FS.

  • Buffer API
  • Класс (Class): fs.FSWatcher
    • События (Event): ‘change’
    • События (Event): ‘error’
    • watcher.close()
  • Класс (Class): fs.ReadStream
    • События (Event): ‘open’
    • События (Event): ‘close’
    • readStream.path
  • Класс (Class): fs.Stats
    • Stat Time Values
  • Класс (Class): fs.WriteStream
    • События (Event): ‘open’
    • События (Event): ‘close’
    • writeStream.bytesWritten
    • writeStream.path
  • fs.access(path[, mode], callback)
  • fs.accessSync(path[, mode])
  • fs.appendFile(file, data[, options], callback)
  • fs.appendFileSync(file, data[, options])
  • fs.chmod(path, mode, callback)
  • fs.chmodSync(path, mode)
  • fs.chown(path, uid, gid, callback)
  • fs.chownSync(path, uid, gid)
  • fs.close(fd, callback)
  • fs.closeSync(fd)
  • fs.createReadStream(path[, options])
  • fs.createWriteStream(path[, options])
  • fs.exists(path, callback)
  • fs.existsSync(path)
  • fs.fchmod(fd, mode, callback)
  • fs.fchmodSync(fd, mode)
  • fs.fchown(fd, uid, gid, callback)
  • fs.fchownSync(fd, uid, gid)
  • fs.fdatasync(fd, callback)
  • fs.fdatasyncSync(fd)
  • fs.fstat(fd, callback)
  • fs.fstatSync(fd)
  • fs.fsync(fd, callback)
  • fs.fsyncSync(fd)
  • fs.ftruncate(fd, len, callback)
  • fs.ftruncateSync(fd, len)
  • fs.futimes(fd, atime, mtime, callback)
  • fs.futimesSync(fd, atime, mtime)
  • fs.lchmod(path, mode, callback)
  • fs.lchmodSync(path, mode)
  • fs.lchown(path, uid, gid, callback)
  • fs.lchownSync(path, uid, gid)
  • fs.link(srcpath, dstpath, callback)
  • fs.linkSync(srcpath, dstpath)
  • fs.lstat(path, callback)
  • fs.lstatSync(path)
  • fs.mkdir(path[, mode], callback)
  • fs.mkdirSync(path[, mode])
  • fs.mkdtemp(prefix, callback)
  • fs.mkdtempSync(template)
  • fs.open(path, flags[, mode], callback)
  • fs.openSync(path, flags[, mode])
  • fs.read(fd, buffer, offset, length, position, callback)
  • fs.readdir(path[, options], callback)
  • fs.readdirSync(path[, options])
  • fs.readFile(file[, options], callback)
  • fs.readFileSync(file[, options])
  • fs.readlink(path[, options], callback)
  • fs.readlinkSync(path[, options])
  • fs.readSync(fd, buffer, offset, length, position)
  • fs.realpath(path[, options], callback)
  • fs.realpathSync(path[, options])
  • fs.rename(oldPath, newPath, callback)
  • fs.renameSync(oldPath, newPath)
  • fs.rmdir(path, callback)
  • fs.rmdirSync(path)
  • fs.stat(path, callback)
  • fs.statSync(path)
  • fs.symlink(target, path[, type], callback)
  • fs.symlinkSync(target, path[, type])
  • fs.truncate(path, len, callback)
  • fs.truncateSync(path, len)
  • fs.unlink(path, callback)
  • fs.unlinkSync(path)
  • fs.unwatchFile(filename[, listener])
  • fs.utimes(path, atime, mtime, callback)
  • fs.utimesSync(path, atime, mtime)
  • fs.watch(filename[, options][, listener])
    • Caveats
      • Availability
      • Inodes
      • Filename Argument
  • fs.watchFile(filename[, options], listener)
  • fs.write(fd, buffer, offset, length[, position], callback)
  • fs.write(fd, data[, position[, encoding]], callback)
  • fs.writeFile(file, data[, options], callback)
  • fs.writeFileSync(file, data[, options])
  • fs.writeSync(fd, buffer, offset, length[, position])
  • fs.writeSync(fd, data[, position[, encoding]])

Об авторе

Занимаюсь программированием уже более 7 лет. Часто использую JavaScript (Node.js) и Python.

Комментарии