0

Node.js で関数を呼び出し、結果を取得して、テンプレートに送信したいと考えています。results常に空を返します。

どうしたの?

var replace = req.params.replace || "";
var find = req.params.find;
var fs = require("fs");
var dir = "./public/sounds/";
var results = [];

var readFiles = function (root) {
    fs.readdir(root, function (err, files) {
        if (err) {
            console.log(err);
            return;
        }
        files.forEach(function (file) {
            console.log(root.concat(file));
            fs.stat(root.concat(file), function (err, stat) {
                if (stat && stat.isDirectory()) {
                    readFiles(root.concat(file + "/"));
                }
            });
            if (file.indexOf(find) > 0) {
                var oldPath = root.concat(file);
                var newPath = oldPath.replace(find, replace).trim();
                console.log("Old Path: ", oldPath, " New Path: ", newPath);
                fs.rename(oldPath, newPath);
                results.push(newPath);
            }
        })

    });
};
readFiles(dir);
res.jsonp({
    message: results
});
4

1 に答える 1