2016-03-03 93 views
0

我想要做的是一次读取/写入多个文件,创建文件后,只有文件内的数据会被更改。错误:路径必须是字符串,NodeJS读取/写入

代码:

var files = fs.readdirSync(__dirname+"/") 

function readWrite(files) { 
    fs.readFile(files[i], 'utf-8', function(err, data){ 
     if (err){ 
      console.log(err) 
     } 
     fs.writeFile(files[i], 'test string', 'utf-8', function (err) { 
      if (err){ 
       console.log("completed") 
      } 
     }) 
    }) 
} 


for(i in files){ 
    readWrite(files[i]) 
} 

的错误是很明显的“路径必须是一个字符串”,可是我怎么去一次在同一个目录下写入多个文件?

我很新的节点,所以很抱歉,如果这看起来像一个骨头问题,任何帮助将不胜感激。

回答

0

尝试在您的功能内替换files[i]通过files。您应该使用变量的名称,files(并可能将其重命名为filepath

之后,您是否真的想要同时读取和写入同一个文件(这是您的代码正在执行的操作)?

+0

不是你有你写它之前从文件中读取做什么?那是我至少想到的。 – Furdew

1

你传递文件名,所以你不应该使用[i]为读写功能:

function readWrite(file) { 
    fs.readFile(file, 'utf-8', function(err, data) { 
     if (err) { 
      console.log(err) 
     } 
     fs.writeFile(file, 'test string', 'utf-8', function (err) { 
      if (err) { 
       console.log("completed") 
      } 
     }) 
    }) 
} 


for (i in files) { 
    readWrite(files[i]) 
} 
相关问题