Node.js在运行此小js文件时,出现以下错误

时间:2018-08-24 18:21:24

标签: javascript node.js

var fs=require('fs');
fs.readFile('input.txt',function(err,data){
    if(err) 
        console.log(err);
    console.log(data.toString());
});
console.log('Program ended');

节点nblock.js

*****出现以下错误******

TypeError: Cannot read property 'toString' of undefined
  at ReadFileContext.callback (C:\projects\text\nblock.js:5:19)
  at FSReqWrap.readFileAfterOpen [as oncomplete] (fs.js:420:13)

2 个答案:

答案 0 :(得分:1)

为了避免该错误,请尝试在出现错误时返回,这样就不会执行if语句之后的行。

var fs=require('fs');
fs.readFile('input.txt',function(err,data){
    if(err) 
        return console.log(err);
    console.log(data.toString());
});
console.log('Program ended');

答案 1 :(得分:0)

因此,当文本文件“ input.txt”与程序本身位于同一目录时,该程序对我有用。您可能在同一目录中没有此文件,可以添加;

var fs = require('fs');
fs.readFile('input.txt', function(err, data) {
  if (!data) { // Check if we have retrieved any data
    console.log('There is no file, ', err);
    return;
  }

  console.log(data.toString());
});
console.log('Program ended');

这实际上是在尝试对可能未定义的变量toString()运行data方法之前检查是否有任何东西。