我要做的是一次读/写多个文件,创建文件后,只会更改文件中的数据。
代码:
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 :(得分:1)
您将文件名传递给readWrite函数,因此不应使用[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])
}
答案 1 :(得分:0)
尝试在功能中替换files[i]
files
。您应该使用变量的名称files
(并可能将其重命名为filepath
)
之后,你真的想同时从同一个文件中读取和写入(这是你的代码正在做的事情)吗?