错误:路径必须是字符串,NodeJS读/写

时间:2016-03-03 15:46:56

标签: javascript node.js

我要做的是一次读/写多个文件,创建文件后,只会更改文件中的数据。

代码:

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])
}

错误非常明显“路径必须是一个字符串”,但是如何一次写入同一目录中的多个文件呢?

我对节点很新,很抱歉,如果这看起来像是一个傻瓜问题,我们将不胜感激。

2 个答案:

答案 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

之后,你真的想同时从同一个文件中读取和写入(这是你的代码正在做的事情)吗?