FS — HackerX https://hackerx.ru Блог о программировании, СУБД, сетях и алгоритмах. Уроки и статьи по разным языкам программирования Wed, 11 Jul 2018 07:15:23 +0000 ru-RU hourly 1 https://wordpress.org/?v=4.9.8 Синхронное и асинхронное чтение файла в Node.js https://hackerx.ru/fs-readfile-and-fs-readfilesync/ https://hackerx.ru/fs-readfile-and-fs-readfilesync/#respond Sat, 03 Dec 2016 11:08:29 +0000 https://hackerx.ru/?p=336 Для работы с файлами в Node.js нам нужно подключить модуль fs. После подключения модуля, в переменную fs мы получим объект, который имеет все необходимые методы и свойства для работы с файлами. const fs = require("fs"); // Подключаем модуль fs   В этой статье мы узнаем как можно читать файлы в Node.js. В Node.js читать файлы можно двумя способами […]

The post Синхронное и асинхронное чтение файла в Node.js appeared first on HackerX.

]]>
Для работы с файлами в Node.js нам нужно подключить модуль fs. После подключения модуля, в переменную fs мы получим объект, который имеет все необходимые методы и свойства для работы с файлами.

const fs = require("fs");  // Подключаем модуль fs

 

В этой статье мы узнаем как можно читать файлы в Node.js. В Node.js читать файлы можно двумя способами — асинхронный и синхронный.

Асинхронное чтение файла — fs.readFile( )

Метод readFile может принимать 3 аргумента. Из них второй аргумент является обязательным.

fs.readFile(файл[, опции], callback)

  • файл <String> | <Buffer> | <Integer> Имя / адрес файла или файловый дескриптор
  • опции <Object> | <String>
    • кодировка <String> | <Null> по умолчанию = null
    • флаг <String> по умолчанию = ‘r’
  • callback <Function>
  • Первый аргумент — это адрес файла, который нужно читать;
  • Второй аргумент — это опции, который является обязательным. Опции можно указать в виде объекта (для указание нескольких опций) и в виде строки;
  • Третий аргумент — это функция обратного вызова (callback функция). Функция вызывается после чтения файла.

 

Пример чтение файла асинхронно:

const fs = require("fs");

fs.readFile('./test.txt', (err, data) => {
    if (err) throw err;
    console.log(data);
});

В функцию обратного вызова передается два аргумента (err, data). Если при чтение файла возникла ошибка, то в переменную err получим объект с описанием ошибки. А аргумент data содержит содержимое файла.

Если при чтение файла ми не указали кодировку, то данные будут возвращены в виде буфера.

Пример чтение файла с указанием опции:

const fs = require("fs");

fs.readFile('./test.txt', 'utf8', (err, data) => {
    if (err) throw err;
    console.log(data);
});

 

Синхронное чтение файла — fs.readFileSync( )

Многие асинхронные функции в Node.js имеют синхронный вариант. И для чтение файлов в синхронном режиме есть метод readFileSync. Он может принимать 2 аргумента.

fs.readFileSync(файл[, опции])

  • файл <String> | <Buffer> | <Integer> Имя / адрес файла или файловый дескриптор
  • опции <Object> | <String>
    • кодировка <String> | <Null> по умолчанию = null
    • флаг <String> по умолчанию = ‘r’
  • Первый аргумент — это адрес файла, который нужно читать;
  • Второй аргумент — это опции, который является обязательным. Опции можно указать в виде объекта (для указание нескольких опций) и в виде строки;

Пример чтение файла синхронно:

const fs = require("fs");

let data = fs.readFileSync('./test.txt', 'utf8');
console.log(data);

 

The post Синхронное и асинхронное чтение файла в Node.js appeared first on HackerX.

]]>
https://hackerx.ru/fs-readfile-and-fs-readfilesync/feed/ 0
File System — Модуль FS: Работа с файлами в Node.js https://hackerx.ru/modul-fs-rabota-s-faylami-v-node-js/ https://hackerx.ru/modul-fs-rabota-s-faylami-v-node-js/#respond Sun, 22 May 2016 11:41:27 +0000 https://hackerx.ru/?p=309 Для работы с файлами в Node.js необходимо подключить модуль FS (File System). После подключения модуля FS мы в переменную получим объект, который имеет методы для работы с файлами и директориями. Все методы имеют асинхронные и синхронные версии. Асинхронные методы в качестве последнего параметра всегда принимают функцию обратного вызова (callback функцию). Функция обратного вызова принимает одну или несколько параметров. Первый параметр […]

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

]]>
Для работы с файлами в 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]])

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

]]>
https://hackerx.ru/modul-fs-rabota-s-faylami-v-node-js/feed/ 0