0

これが私のコードです:

connection.query("SELECT * FROM images", function(err, rows, fields) {
            if (err) {
                console.log("Error: ");
                console.log(err);
            }
            else {
                console.log("rows: ");
                console.log(rows);

                for (var i = 0; i < rows.length; i++) {
                    var thisRow = rows[i];
                    var thisImageName = thisRow["imagename"];
                    var newDir = __dirname.split(path.sep).join("/");
                    var thisImagePath = newDir + "/public/uploads/" + thisImageName + ".jpg";
                    console.log(thisImagePath);
                    fs.exists(thisImagePath, function(exists) {
                        if (exists) {
                            console.log("true");
                            res.end();
                        }
                        else {
                            console.log(thisImageName + " does not exist."); res.end();
//Always returns false
                        }
                    });
                }
            }
        });

でも、

コンソールで:

fs.exists(/* imagepath */, function(exists){console.log(exists)}) //returns true

ご覧のとおり、node-mysqlライブラリを使用して画像のファイル名を返しています。グローバルを使用してそれらを連結し__dirname、ディレクトリ文字列のスラッシュを逆にして.exists()呼び出しで使用します。モジュールを使用しfsて画像ファイルが存在するかどうかを確認すると、false が返されます。

fs.exists()ただし、コンソールで同じパスを使用すると、true が返されます。ここで何が起こっているか知っている人はいますか?

4

0 に答える 0