我目前npm包“walk”有问题,问题是它应该采用的路径只能用字符串给出。这是一个问题,因为路径将根据应搜索的目录而改变。
var walkers = walk.walk(""+animeDir+"", options);
walkers.on('file', function(root, stat, next) {
files.push(stat.name);
next();
});
我尝试过不同的方式,例如:
var walkers = walk.walk("F:/" + animeDir, options);
var walkers = walk.walk("\"animeDir\"", options); // "F:/" was already included
var walkers = walk.walk("'+animeDir+'", options);
最后只是通过传递变量本身,虽然我得到一些错误,如:binding.readdir(pathModule._makeLong(path), req);
TypeError: path must be a string.
我目前没有想法,我没有找到有帮助的东西。我期待你的回答,提前谢谢你!
答案 0 :(得分:0)
假设animeDir
(和options
)是上面定义的javascript变量,如
var animeDir = 'F:/AnimeMovies';
walk.walk(dir, options);
函数的第一个参数必须是一个字符串(如上面定义的变量)才能正确传递字符串作为您不需要""+var+""
尝试的变量:
var walkers = walk.walk(animeDir, options);
将字符串连接到字符串变量的正确方法是使用+
:
var walkers = walk.walk( animeDir + '\', options);
如果你试图直接传递字符串,请尝试:
var walkers = walk.walk("F:/animeMovies/videos/", options);
您是否尝试过此操作以查找成功调用walk.walk(dir, options);
后发生的任何错误?
walkers.on('errors', function(root, nodeStatsArray, next) {
nodeStatsArray.forEach(function (n) {
console.error("[ERROR] " + n.name)
console.error(n.error.message || (n.error.code + ": " + n.error.path));
});
next();
}