2015-06-28 2 views
0

У меня в настоящее время проблема с пакетом npm «прогулка», проблема в том, что путь, который он должен принимать, может быть задан только с помощью строки. Это проблема, потому что путь будет меняться в зависимости от того, в каком каталоге он должен искать вnode.js переменная пути ходьбы

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

Что такое 'animeDir'? Кроме того, вы пробовали ['path.join'] (https://nodejs.org/api/path.html#path_path_join_path1_path2) – laggingreflex

ответ

0

Предполагая, что animeDiroptions) является Java-переменная, определенная выше, как

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(); 
} 
+0

Эй! Спасибо за ваш ответ, но я исправил его всего 15 минут назад. Проблема заключалась в том, что моя функция «ходьбы» выполнялась до того, как animeDir может быть присвоено значение, которое приведет к animeDir = undefined. Я исправил это, запустив мою функцию «ходьбы» внутри моего маршрута ПОСЛЕ того, как animeDir получил значение. Но у вас есть моя благодарность за то, что он даже дал мне немного времени! – DCBN

+0

Спасибо за отправку решения! Рад, что вы поняли это, асинхронная обработка yep-узла может быть непостоянной таким образом, вы должны знать, что определено в каких областях и т. Д. Хорошая работа! –

Смежные вопросы