node.js - 来帮我捋一下node中fs模块watch实现原理
问题描述
来探索一下node中fs模块watch实现原理,
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...');
fs如何实现针对文件变化做出响应的事件通知的呢?如果说是通过监听文件大小变化,或者其他?
下面是通过node源码看到的一些东西:
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); } };}
后面的fs_event_wrap.cc 基本都是外星语言了。
下面我再docker当中挂载的数据卷监听不到事件通知
问题解答
回答1:看一下这个吧 https://github.com/nodejs/nod...
回答2:快来了Boy解答一下啊,不知道踩我的,脑壳有坑?
相关文章:
1. Java中main方法里面的参数一定要是String []args吗?2. docker绑定了nginx端口 外部访问不到3. javascript - node.js中stat() access() open() readFile()都能判断文件是否存在?4. css - 如何讓圖片像雲一樣的行為?5. html5 - 目前 公司App 嵌入H5页面 做个 手机支付功能 没有做过 所以 请求各位有经验的 给个思路6. node.js - Nodejs微信开发,视频上传成功,但是不返回给用户7. css3 - CSS优先级问题8. html - 关于CSS实现border的0.5px设置?9. font-family - 我引入CSS3自定义字体没有效果?10. mysql - sql 左连接结果union右连接结果,导致重复性计算怎么解决?
![Java中main方法里面的参数一定要是String []args吗?](http://www.haobala.com/attached/image/11.jpg)
网公网安备