Node.js fs.writeFile()不是ovewriting文件

时间:2014-03-11 19:13:20

标签: node.js

根据文档,fs.writeFile的默认行为是截断文件(如果文件已存在)。它对我来说似乎没有这样做,并且可以通过一个非常简单的测试用例来观察。

var fs = require('fs')

var str1 = "aaaaaaaaaa" // start with this string
var str2 = "bbbbbb" // replace it with this string
var str3 = "bbbbbbaaaa" // this is the string which appears with an append

fs.writeFile('test',str1,function(){
  fs.writeFile('test',str2,function(){
    fs.readFile('test','utf8',function(err,buff){
      console.log(buff === str2) // should be true
      console.log(buff === str3) // should be false
    })
  })
})

预期产量: true false

实际输出: false true

这是在具有节点v0.10.24的CentOS上发生的。我给出的例子来自另一个SO问题,该答案的作者说他的机器正在给他与我的机器完全相同的代码块。 node.js fs.writeFile Not Completely Overwriting File

1 个答案:

答案 0 :(得分:1)

问题是Vagrant winnfs插件中的已知错误。 https://bitbucket.org/jankowfsky/winnfsd/issue/7/winnfsd-doesnt-always-overwrite-files已经提出了与此问题有关的问题。