使用fs.stat进行文件验证始终失败

时间:2012-11-05 02:27:29

标签: node.js express

我写了一个小函数来验证路径图像:

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

它只是检查我的public / 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')));

我错过了什么?

1 个答案:

答案 0 :(得分:2)

'/images/'是一个绝对路径,它不会检查您的公共/图像目录。

您可以使用__dirname

创建相对于您的Node脚本的网址

您的目录结构是这样的,似乎

root
  public
    images
  app.js

你可以这样做:

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