因此,如果我在带有伪造路径的OS X 10.6.8上的node.js v0.6.7中运行此简单调用,则会出现错误,如预期的那样。为什么errno 34和代码之间不匹配ENOENT
var fs = require("fs");
fs.stat("/tmp/foo", function(error, stat) {
return console.log(error);
});
它打印输出:
{ [Error: ENOENT, no such file or directory '/tmp/foo'] errno: 34, code: 'ENOENT', path: '/tmp/foo' }
我的问题是,根据/usr/include/sys/errno.h
我的系统上,ENOENT
应该有码2,所以这是为什么错误说errno.h中错误号34
(ERANGE ),但将它与来自ENOENT
的错误消息配对?
这是真正有用的,谢谢。但是为什么'require('constants').ENOENT'报告2在这种情况下?有另一种获得Node的errnos的方法吗? – 2012-05-05 00:19:19
有点晚了,但可能对其他人有帮助:看起来errnos没有被节点暴露。您可以使用npm模块[errno-codes](https://npmjs.org/package/errno-codes)获取errnos的预定义常量。 – basti1302 2013-09-05 05:25:04
我发誓这是一个nodejs错误。它应该是每个文档的'-2':https://nodejs.org/api/errors.html#errors_error_errno – Pacerier 2017-02-21 08:15:15