如何处理不带';当使用LiipImagineBundle时,JavaScript中仍然存在t

如何处理不带';当使用LiipImagineBundle时,JavaScript中仍然存在t,javascript,node.js,symfony,liipimaginebundle,Javascript,Node.js,Symfony,Liipimaginebundle,我想检查NodeJS中是否存在文件 我在另一篇帖子中看到了这个解决方案: const tryRequire = (path) => { try { return require(`${path}`); } catch (err) { return null; } }; 但这真的是一个好的解决方案吗 在我的例子中,我检查了很多文件,所以我将导入需要检查的每个文件(很多文件)。我只是想知道文件是否存在,不要导入它 我怎么能这样做 编辑: 我正在详细解释我的问题 我在

我想检查NodeJS中是否存在文件

我在另一篇帖子中看到了这个解决方案:

const tryRequire = (path) => {
  try {
   return require(`${path}`);
  } catch (err) {
   return null;
  }
};
但这真的是一个好的解决方案吗

在我的例子中,我检查了很多文件,所以我将导入需要检查的每个文件(很多文件)。我只是想知道文件是否存在,不要导入它

我怎么能这样做


编辑:

我正在详细解释我的问题

我在一个Symfony和React项目中我是React的新手。

可以在聊天中上传图像。上传图像时,我调用Symfony路由。在这条路线中,我使用Liip Imagine bundle。所以我做了类似这样的事情来缓存图像:

public function new(Request $request, SerializerInterface $serializer): Response
{
    $rewardImagePath = $this->uploaderHelper->asset($media, 'imageFile');
        if($rewardImagePath) {
            $cacheImagePath = $this->cacheManager->getBrowserPath($rewardImagePath, 'live_feed_message');
        }
}
问题是函数getBrowserPath为我提供了未来缓存文件的URL。但是创建该文件需要相当长的时间(有时像5/10秒)。因此,在我的前面有一条新的聊天信息,但实际上服务器上不存在相关的文件。因此,它显示一条没有图像的消息

由于一些未知的原因,如果我正在执行一个while文件,而该控制器中存在该文件,则我会超时,并且该文件永远不会被创建。这就是我试图在react端检查文件存在的原因。

您可以尝试:

function doesFileExist(urlToFile) {
var xhr = new XMLHttpRequest();
xhr.open('HEAD', urlToFile, false);
xhr.send();

if (xhr.status == "404") {
    return false;
} else {
    return true;
}
}

使用其他nodejs技术。。。像
fs.existsSync(path)
method您是在浏览器还是节点环境中?@EmileBergeron-我很抱歉。。。OP已经澄清,你确实是正确的(正如我在第一次评论中所说的那样)我更新了我的帖子以正确地解释我的问题,并提供了更多细节。我尝试了你的链接,但它不起作用。我认为这是因为当我们调用URL时,LiipMagine捆绑包会在缓存中重新创建不存在的图像。因此,它可能会在每次成功时返回,而不会返回错误。但有时生成图像需要很长时间,而在这段时间内我没有图像。这假设他们正在客户端而不是在NodeJS中执行某些操作,这仍然不完全清楚。是的,我在之后看到了他的回复,我会将其留在这里,即使是转发,可能会帮助某人