NodeJS fs Stats.isFile() 未定义
Posted
技术标签:
【中文标题】NodeJS fs Stats.isFile() 未定义【英文标题】:NodeJS fs Stats.isFile() not defined 【发布时间】:2014-04-05 03:38:16 【问题描述】:我是 NodeJS 的新手,我正在尝试递归读取目录这是我的代码
var fs = require('fs');
var readDir = function (dir, calback)
fs.readdir(dir, function (err, files)
if (err)
console.log(err);
for (var file in files)
fs.stat(dir + "/" + file, function (err, stats)
if (err)
console.log(err);
if (stats.isFile())
calback(dir + "/" + file);
if (stats.isDirectory())
walk(file, calback);
);
);
;
这是我的错误消息
C:\Users\Lukas\Desktop\Enide-Studio-05-kepler-win32\ws\PlayerTest\hello-world-server.js:24
if (fs.stats.isFile())
^
TypeError: Cannot call method 'isFile' of undefined
at C:\Users\Lukas\Desktop\Enide-Studio-05-kepler-win32\ws\PlayerTest\hello-world-server.js:24:30
at Object.oncomplete (fs.js:107:15)
我的错误是什么??
【问题讨论】:
【参考方案1】:遇到错误后,您并未退出函数。
fs.stat(dir + "/" + file, function (err, stats)
if (err)
console.log(err);
return; // exit here since stats will be undefined
if (stats.isFile())
calback(dir + "/" + file);
if (stats.isDirectory())
walk(file, calback);
);
【讨论】:
+1 表示正确答案。也可以写成return console.log()
,因为不返回任何内容在功能上等同于return undefined
,并且console.log 的结果是undefined
。我还要补充一点,有些人认为return callback(...)
也是一个好习惯。它有时会节省 else 块等的需要。以上是关于NodeJS fs Stats.isFile() 未定义的主要内容,如果未能解决你的问题,请参考以下文章