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);
答案 0 :(得分:4)
在给定的读操作期间缓冲读取。例如。当你要求读取一个字节时,它可能会读取比单个字节更多的字节到缓冲区,然后将该单个字节返回给你。但除此之外,从一个文件读取到另一个文件,node.js中没有内置缓存。而且,如果你使用readFileSync()
一次读取整个文件,这个缓冲不会影响你。
操作系统本身将在node.js下进行缓存,但这通常是直写缓存,旨在节省磁盘读取,但永远不会有陈旧数据。