4

ビデオ チュートリアル用に単純な readfile コマンドを実行しています。これは、インストラクターが保存したコードとまったく同じです...

var fs = require("fs");
console.log("Starting");
fs.readFile("./sample.txt", function(error, data) {
console.log("Contents: " + data);
});
console.log("Carry on executing");

このjsファイルと同じフォルダーにsample.txtがあり、sample.txtファイルには「これはこのテキストドキュメントのサンプル出力です」がありますが、残念ながらデータ変数の出力として「未定義」が表示されますコードで。

なぜこれが起こっているのかについて誰かが洞察を持っているなら、誰かが助けてくれると素晴らしいでしょう....

ありがとう

4

3 に答える 3

5

最初にファイルが存在するかどうかを確認してください。

var fs = require("fs");
console.log("Starting");

fs.exists("./sample.txt", function(fileok){
  if(fileok)fs.readFile("./sample.txt", function(error, data) {
    console.log("Contents: " + data);
  });
  else console.log("file not found");
});
console.log("Carry on executing");

存在しない場合は、コードに問題がないため、パス、ファイル名、および拡張子を確認してください。

于 2013-01-13T23:32:29.873 に答える
3

これをどこから実行しているかによって、./sample.txt解決されるルートが異なる場合があります。

モジュールに対して相対的に解決されるようにするには、次の手順を実行します。

var fs = require("fs");
var path = require('path');

var sampleTxt = path.join(__dirname, 'sample.txt');

console.log("Starting");
fs.readFile(sampleTxt, function(error, data) {
  if (error) return console.error(error);
  console.log("Contents: " + data);
});
console.log("Carry on executing");
于 2013-01-14T05:39:01.193 に答える