Heim  >  Fragen und Antworten  >  Hauptteil

node.js – Lassen Sie mich das Implementierungsprinzip der fs-Modulüberwachung im Knoten erklären

Lassen Sie uns das Implementierungsprinzip der fs-Modulüberwachung im Knoten untersuchen,

const fs = require('fs');
var fileName = 'a.txt';
fs.watch(fileName, (function () {
    var count = 0;
    return function () {
        count++;
        console.log("文件" + fileName + " 内容刚刚改变。。第" + count + "次");
    };
})());
console.log("watching file...");

Wie implementiert fs Ereignisbenachrichtigungen als Reaktion auf Dateiänderungen? Ob durch die Überwachung von Dateigrößenänderungen oder etwas anderes?

Hier sind einige Dinge, die im Quellcode des Knotens zu sehen sind:

const FSEvent = process.binding('fs_event_wrap').FSEvent;

function FSWatcher() {
  EventEmitter.call(this);

  var self = this;
  this._handle = new FSEvent();
  this._handle.owner = this;
  this._handle.onchange = function(status, eventType, filename) {
    if (status < 0) {
      self._handle.close();
      const error = !filename ?
          errnoException(status, 'Error watching file for changes:') :
          errnoException(status,
                         `Error watching file ${filename} for changes:`);
      error.filename = filename;
      self.emit('error', error);
    } else {
      self.emit('change', eventType, filename);
    }
  };
}

Die folgende fs_event_wrap.cc ist grundsätzlich in einer fremden Sprache verfasst.

Das Datenvolumen, das ich in Docker bereitgestellt habe, kann keine Ereignisbenachrichtigungen erkennen

ringa_leeringa_lee2724 Tage vor1187

Antworte allen(2)Ich werde antworten

  • PHP中文网

    PHP中文网2017-05-27 17:46:10

    看一下这个吧 https://github.com/nodejs/nod...

    Antwort
    0
  • 仅有的幸福

    仅有的幸福2017-05-27 17:46:10

    快来了Boy解答一下啊,不知道踩我的,脑壳有坑?

    Antwort
    0
  • StornierenAntwort