节点js在嵌套的fs.readFile调用中给出未定义的数据

时间:2017-12-21 19:25:25

标签: javascript node.js

这是我在nodejs中的第一个项目。我无法找到原因:

enter image description here

fs.readFile("/home/shaurya/Desktop/test.txt","utf-8", 
 function(err,filedata1){
    fs.readFile(filedata1,"utf-8",function(err,filedata2){
        console.log(filedata1);
        console.log(filedata2);
    });
});

" /home/shaurya/Desktop/test.txt"包含文件的位置作为字符串。我在外部readFile调用中读取此test.txt并将文件内容作为参数传递给内部readFile。

test.txt的内容是:/home/shaurya/Desktop/Parser.hs。

我原以为我会将输出作为console.log(filedata2)调用的字符串。 相反,我得到undefined

有什么想法吗?

enter image description here

1 个答案:

答案 0 :(得分:1)

我有类似的问题。为了解决这个问题,您需要将.trim()方法附加到filedata1。显然有时文本编辑器会在流结束后添加额外的空格或换行符。这应该可以解决你的问题。

您的新代码:

fs.readFile("/home/shaurya/Desktop/test.txt","utf-8", 
 function(err,filedata1){
    fs.readFile(filedata1.trim(),"utf-8",function(err,filedata2){
        console.log(filedata1);
        console.log(filedata2);
    });
});

//请注意filedata1

之后的.trim()