2012-11-05 74 views
0

我寫了一個小功能來驗證路徑圖像:與fs.stat文件驗證總是失敗

var validateImage = function(image) { 
    fs.stat('/images/' + image, function(err, stats) { 
    if(stats.isFile()) { 
     return true; 
    } 
    }); 
}; 

它只是檢查,如果圖像參數,那將是我的公開/ images目錄下的類似"myimage.jpg"存在。

我可以訪問圖像:

http://127.0.0.1:3000/images/myimage.jpg 

然而validateImage("myimage.jpg")總是返回false。

images目錄是/public下,這是我的app.js定義:

app.use(express.static(path.join(__dirname, 'public'))); 

我缺少什麼?

+0

'fs.stat'使用文件的實際路徑。你的代碼正在尋找一個根目錄'/ images',這不是你以後描述的方式。 – Joe

+0

也嘗試使用/ public/images/+圖像驗證它。依然沒有 – jviotti

回答

2

'/images/'是一個絕對路徑,它不會檢查你的公共/圖像目錄。

通過使用__dirname,可以使URL相對於您的Node腳本。

你的目錄結構是這樣的,它似乎

root 
    public 
    images 
    app.js 

你可以這樣做:

fs.stat(__dirname + '/public/images/' + image, ...