これが私のコードです:
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 が返されます。ここで何が起こっているか知っている人はいますか?