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

Node.js 使用fs.stat进行文件验证始终失败,node.js,express,Node.js,Express,我编写了一个验证路径图像的小函数: var validateImage = function(image) { fs.stat('/images/' + image, function(err, stats) { if(stats.isFile()) { return true; } }); }; 它只是检查image参数是否存在于我的public/images目录下,该参数类似于“myimage.jpg” 我可以访问以下位置的图像: http://127.

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

var validateImage = function(image) {
  fs.stat('/images/' + image, function(err, stats) {
    if(stats.isFile()) {
      return true;
    }
  });
};
它只是检查image参数是否存在于我的public/images目录下,该参数类似于
“myimage.jpg”

我可以访问以下位置的图像:

http://127.0.0.1:3000/images/myimage.jpg
但是
validateImage(“myimage.jpg”)
始终返回false

图像目录位于my app.js中定义的
/public
下:

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

我缺少什么?

'/images/'
是一个绝对路径,它不会在您的public/images目录中进行检查

您可以使用
\uu dirname
使url相对于节点脚本

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

root
  public
    images
  app.js
您可以这样做:

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

fs.stat
使用文件的实际路径。您的代码正在根目录下查找目录
/images
,这不是您稍后描述的方式。还尝试使用/public/images/+image对其进行验证。还是没什么