node.js的readFileSync是否缓存读取文件?

时间:2015-02-27 10:24:44

标签: node.js file caching

node.js的fs.readFileSync是否缓存了已读取的文件?

我不认为这样做是因为doc没有这么说,但我的代码表现得那样......

  • 修改

代码的相关部分

     // after mainPath file is altered, it's not reflected until I restart node.js
     var scriptString =  fs.readFileSync(mainPath);
     var app = vm.createScript(scriptString, mainPath); 

     // Run the app

     app.runInContext(context);

1 个答案:

答案 0 :(得分:4)

在给定的读操作期间缓冲读取。例如。当你要求读取一个字节时,它可能会读取比单个字节更多的字节到缓冲区,然后将该单个字节返回给你。但除此之外,从一个文件读取到另一个文件,node.js中没有内置缓存。而且,如果你使用readFileSync()一次读取整个文件,这个缓冲不会影响你。

操作系统本身将在node.js下进行缓存,但这通常是直写缓存,旨在节省磁盘读取,但永远不会有陈旧数据。