node.js行走路径变量

时间:2015-06-28 00:09:38

标签: javascript node.js variables npm

我目前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. 我目前没有想法,我没有找到有帮助的东西。我期待你的回答,提前谢谢你!

1 个答案:

答案 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();
}