Javascript 节点文件系统fs.exist删除线

Javascript 节点文件系统fs.exist删除线,javascript,node.js,visual-studio-code,fs,Javascript,Node.js,Visual Studio Code,Fs,此后端代码从uploads/users文件夹检索图像文件。Visual Studio代码使用删除线标记fs.exists,这意味着什么?它被弃用了?我怎样才能替换这个?提前谢谢 getImageFile:(请求,res)=>{ 让file=req.params.image; 让pathFile='./上传/users/'+文件; fs.exists(路径文件,(exists)=>{ 如果(存在){ 返回res.sendFile(path.resolve(pathFile)); }否则{ 返回r

此后端代码从uploads/users文件夹检索图像文件。Visual Studio代码使用删除线标记fs.exists,这意味着什么?它被弃用了?我怎样才能替换这个?提前谢谢

getImageFile:(请求,res)=>{
让file=req.params.image;
让pathFile='./上传/users/'+文件;
fs.exists(路径文件,(exists)=>{
如果(存在){
返回res.sendFile(path.resolve(pathFile));
}否则{
返回res.status(200).send({message:'No existe la imagen'});
}
});

}
可能是因为您不应该在新代码中使用它。

可能是因为您不应该在新代码中使用它。

是的,
fs.exists
被弃用,原因之一是

此回调的参数与其他Node.js不一致 回调。通常,Node.js回调的第一个参数是 err参数,可选后跟其他参数。这个 fs.exists()回调只有一个布尔参数

非常清楚这一点和推荐的备选方案(
fs.stat
fs.access

代码中真正的问题是回调中可能遇到的竞争条件,例如,如果文件同时被删除。最安全的方法是:

res.sendFile(path.resolve(pathFile), function (err) {
    if (err) {
        if (err.code === 'ENOENT') {
            return res.status(200).send({message: 'No existe la imagen'});
        }
        else {
            // handle other errors...
        }
    }
})

其他常见的系统错误有。

是,
fs.exists
不推荐使用,原因之一是

此回调的参数与其他Node.js不一致 回调。通常,Node.js回调的第一个参数是 err参数,可选后跟其他参数。这个 fs.exists()回调只有一个布尔参数

非常清楚这一点和推荐的备选方案(
fs.stat
fs.access

代码中真正的问题是回调中可能遇到的竞争条件,例如,如果文件同时被删除。最安全的方法是:

res.sendFile(path.resolve(pathFile), function (err) {
    if (err) {
        if (err.code === 'ENOENT') {
            return res.status(200).send({message: 'No existe la imagen'});
        }
        else {
            // handle other errors...
        }
    }
})
其他常见的系统错误包括