2017-12-21 10 views
0

これはnodejsの私の最初のプロジェクトです。私は原因を見つけることができません:ノードjsはネストされたfs.readFileコールで未定義のデータを与えます

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

+0

後に '何が含まれているerr'ていますか?いずれの呼び出しでも? – AdamJeffers

+1

エラーをログに記録しようとしました。そのhsファイルを読み取ろうとしてエラーが発生しました。 –

+0

エラー:ENOENT:そのようなファイルまたはディレクトリがありません。 '/home/shaurya/Desktop/Parser.hs ' – Shaurya

答えて

1

私は同様の問題がありました。これを解決するには、filedata1に.trim()メソッドを追加する必要があります。テキストエディタは、ストリームの最後の後に余分なスペースや改行文字を置くことがあります。これはあなたの問題を解決するはずです。

あなたの新しいコード:

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

//(.trimに注意してください)filedata1

+0

素晴らしい! AdamJeffersとAGoranov。 – Shaurya

関連する問題