NodeJS readdir() 函数总是运行两次



我一直在尝试学习 NodeJS 并学习更多用于后端开发目的。不过,我似乎无法将注意力集中在异步任务上,我这里有一个例子,我花了几个小时试图寻找解决方案。

  app.get('/initialize_all_pictures', function(req, res){
  var path = './images/';
  fs.readdir(path, function(err, items){
    if (err){
      console.log("there was an error");
      return;
    }
    console.log(items.length);
    for(var i = 0; i<items.length; i++){
      var photo = new Photo(path + items[i], 0, 0,Math.floor(Math.random()*1000))
      photoArray.push(photo);
    }
  });
  res.json({"Success" : "Done"});
});

目前,我有一个端点,它应该查看一个名为图像的目录并创建"照片"对象并将其推送到名为 PhotoArray 的全局数组中。它可以工作,除了 readdir 的函数总是被调用两次。

控制台.log将始终给出输出2阿拉伯数字

(目录中有两个项目)。

这是为什么呢?

刚刚弄清楚了问题所在。

我有一个 chrome 扩展程序,可以帮助我格式化 HTTP 请求中的 JSON 值。不幸的是,扩展实际上对端点进行了额外的调用,因此每当我将浏览器指向端点时,该函数最终都会被调用两次!

最新更新