Как да взаимодействаме с файлови дескриптори в Node.js?

Kak Da Vzaimodejstvame S Fajlovi Deskriptori V Node Js



В Node.js, „ файлов дескриптор ” е просто неотрицателен индекс на цяло число в таблицата на файловия дескриптор. Таблицата с файлови дескриптори е масив в рамките на „ PCB (блок за контрол на процеса) ”, който пази записите на всички процеси на една операционна система. Той действа като препратка към отворен файл, който се използва за лесно идентифициране или достъп до отворен файл в операционна система. След като отвореният файл е достъпен чрез „ файлов дескриптор ”, тогава потребителят може да извърши желаната операция върху него според изискванията.

Това описание ще покаже как потребителят може да взаимодейства с файловите дескриптори в Node.js.







Как да взаимодействаме с файлови дескриптори в Node.js?

Потребителят може да взаимодейства с файловите дескриптори по начин, по който ги извлича с помощта на посочените по-долу предварително дефинирани методи на „ fs ” модул:



Нека разгледаме подробно тези методи един по един.



Метод 1: Използвайте „fs.open()“, за да получите файлов дескриптор

fs.open ()” е най-често използваният метод на „ fs ” модул, който асинхронно отваря файла за извършване на няколко операции като четене, писане, преименуване, актуализиране и изтриване. Освен това той също връща „ файлов дескриптор ” след извършване на дефинираната операция върху отворения файл чрез функцията за обратно извикване.





Синтаксис

Основният синтаксис на „ fs.open ()” е написан по-долу:

fs. отворен ( име на файл , знамена , режим , обратно повикване )

Съгласно горепосочения синтаксис, „ fs.open ()” поддържа следните параметри:



  • име на файл : Указва името, както и пътя на конкретния файл, който потребителят иска да отвори.
  • знамена : Означава операциите, които ще бъдат извършени върху отворения файл. Стойността му по подразбиране е „r(четене)“ по подразбиране.
  • режим : Показва разрешенията на файла, който е „ 0o666 (както за четене, така и за запис) ' по подразбиране.
  • обратно повикване : Изпълнява се след завършване на „ fs.open ()” метод. Той поддържа „ грешка ” параметър, който извежда грешка, ако възникне по време на изпълнение на метода и 'данни' параметър, който връща „ fd (файлов дескриптор) ” за достъп до отворения файл.

Върната стойност: fs.open() ” дава файлов дескриптор като върната стойност.

Различни налични флагове, използвани заедно с файловите дескриптори в Node.js

Всички видове знамена, които „ fs.open() ” Поддържаните методи за извършване на желаните операции върху отворения файл са изброени по-долу:

Знамена Описание
в Използва се за запис на съдържанието в отворен файл, без да го представя, ще бъде създаден нов файл.
w+ Използва се за отваряне на файла за извършване на операции за четене и запис върху него.
wx Работи по същия начин като „ в ”. Той обаче не създава посочения файл, ако не присъства във файловата система.
wx+ Това е същото като „ w+ ” обаче се проваля, ако файлът не съществува.
r Той отваря файла, за да го прочете и също така създава нов файл, ако не присъства.
r+ Той отваря файла в режим за четене и запис.
rs+ Той синхронно отваря файл, за да изпълни задачите за четене и писане върху него.
а Отваря файла за добавяне на съдържанието му.
а+ Той отваря файла за четене и добавяне на съдържанието му.
брадва Това е същото като „ а ”, но не създава нов файл, ако не е скорошен във файловата система.
брадва+ Работи по същия начин като „ а+ ”, но не създава нов файл.

След като научите основите на „ fs.open ()” нека преминем към практическото му прилагане, за да получим файловия дескриптор.

Пример: Прилагане на метода „fs.open()“ за получаване на файлов дескриптор с флаг по подразбиране

Този пример показва, че се прилага „fs.open()“ метод за отваряне на посочения файл за четене и връщане на файловия дескриптор:

конст fs = изискват ( 'fs' ) ;
беше рез = fs. отворен ( 'file.txt' , 'р' , функция ( грешка , fd ) {
ако ( грешка ) {
конзола. грешка ( грешка ) ;
} друго {
конзола. дневник ( „Файлът е отворен!“ ) ;
конзола. дневник ( fd ) ; }
} ) ;

Обяснението на горния кодов блок е както следва:

  • Първо, „ изискват ()” методът импортира „ fs (файлова система) ” модул.
  • След това „ fs.open ()” метод определя желаното име на папка, флаг по подразбиране “ r ”, и функция за обратно извикване съответно като първи, втори и трети аргумент. Функцията за обратно извикване допълнително предава „ грешка “ и „ fd ” аргументи. Този метод отваря посочения файл за четене и след това изпълнява дадената функция за обратно извикване.
  • В дефиницията на функцията за обратно извикване, „ ако ” изразът използва „ console.error() ” за показване на съобщението за грешка, което се появява при отваряне на посочения файл.
  • Ако не възникне грешка, тогава „ друго ” ще се изпълни операторът, който използва „ console.log ()” за показване на съобщението за потвърждение и „дескриптора на файла”, който е обозначен с „ fd ” аргумент.

Изход

Сега изпълнява изпълнението за съдържащи „ ап .js” файл чрез:

приложение за възел. js

Изходът по-долу показва, че файлът е отворен за четене и също така връща файловия дескриптор:

Метод 2: Използвайте „fs.openSync()“, за да получите файлов дескриптор

fs.openSync ()“ е предварително дефинираният метод на „ fs ” модул, който синхронно отваря файла за извършване на общи операции: като четене, запис, преименуване, актуализиране и изтриване. Заедно с основната си функционалност, този метод връща „ файлов дескриптор ” директно вместо извикване на функцията за обратно извикване, както в „ fs.open ()” метод.

Синтаксис

fs. openSync ( път , знамена , режим )

Параметрите, използвани в горния „ fs.openSync() ” е обяснен по-долу:

  • път : Указва името и пътя на конкретния файл под формата на низ, URL или буфер.
  • знамена : Означава низ или числова стойност, която определя операциите, които ще бъдат извършени върху отворения файл. Стойността му по подразбиране е „r(четене)“ по подразбиране.
  • режим : Означава разрешенията на файла, който е „ 0o666 (както за четене, така и за запис) ' по подразбиране.

Върната стойност: fs.openSync() ” предоставя цяло число като върната стойност, която обозначава файловия дескриптор.

Следвайте нашето подробно ръководство за „ fs.openSync() Метод ” за практическа реализация.

Метод 3: Използвайте „fsPromise.open()“, за да получите файлов дескриптор

fsPromises.open() ” е предварително дефинираният метод на „ fs ” модул, който асинхронно отваря файла като обещание и връща „ файлов дескриптор ”. Ако обещанието е разрешено, то проверява дали указаната папка е отворена, в противен случай се отхвърля с обект за грешка.

Синтаксис

fsОбещания. отворен ( име на файл , знамена , режим )

fsPromises.open ()” методът работи върху следните три параметъра:

  • име на файл : Казва името на конкретния файл и пътя под формата на низ, URL или буфер, който потребителят иска да прочете по подразбиране.
  • знамена : Може да е низ или неотрицателно цяло число, което определя операциите, които да се извършат върху отворения файл. Стойността му по подразбиране е „r(четене)“ по подразбиране.
  • режим : Указва разрешенията за файлове, които са „ 0o666 (както за четене, така и за запис) ' по подразбиране.

Върната стойност: Това дава „ обещание ” като върната стойност на „ fsPromises.open ()” метод.

Следвайте нашето подробно ръководство за „ fsPromises.open() Метод ” за практическа реализация.

Какви различни операции могат да се извършват с файлови дескриптори в Node.js?

След като дескрипторът на файла бъде извлечен, потребителят може да го използва за достъп до този конкретен файл, за да извършва различни операции върху него като отваряне, затваряне, четене, писане и много други. За да изпълните тези конкретни операции, следвайте нашето подробно ръководство за „ Модул на файловата система ”.

Това е всичко за взаимодействието с файловите дескриптори в Node.js.

Заключение

За да взаимодействате с файловите дескриптори, използвайте „ fs.open()”, “fs.openSync() ', или ' fsPromises.open() ” в Node.js. Всички тези методи отварят файла, за да извършат различни операции върху него, посочени чрез „ знаме ” параметър и също връща „ файлов дескриптор ”, което е препратката към отворения файл. Това описание разработи подробно как да взаимодействате с файловите дескриптори в Node.js.