我编写了此示例代码来复制 Lstat 错误。
var fs=require("fs"); var path="/home/unixroot/Desktop/zookeeper1"; fs.lstat(path,function(err,stats){ if(err) { if(err.code==="ENOENT") { fs.exists(path,function(exist) { if(!exist) console.log("Path does not exists"); }); } console.log(err); } else { console.log(stats); } });
现在我提供的路径不存在,当我打印 err 变量时,它显示如下。
{ [Error: ENOENT, lstat '/home/unixroot/Desktop/zookeeper1'] errno: 34, code: 'ENOENT', path: '/home/unixroot/Desktop/zookeeper1' }
我不确定 errno,在本例中为 34。我的问题是它是什么意思,是否有这些 errno 的列表来找出此错误的确切原因。
答案1
errno
表示“错误编号”,是类 Unix 系统上分配给特定错误的代码编号。通常,代码的符号版本更有用。
在 C 中,您可以使用函数strerror
将代码转换为实际描述。node.js 似乎不包含这样的函数,但似乎有一些用户实现:
您还可以查看手册页lstat
或参考 glibc 手册的错误代码部分。