因此,如果我在OS X 10.6.8上的node.js v0.6.7中使用虚假路径运行此简单调用,则会出现错误,如预期的那样.
var fs = require("fs");
fs.stat("/tmp/foo", function(error, stat) {
return console.log(error);
});
Run Code Online (Sandbox Code Playgroud)
它打印此输出:
{ [Error: ENOENT, no such file or directory '/tmp/foo'] errno: 34, code: 'ENOENT', path: '/tmp/foo' }
Run Code Online (Sandbox Code Playgroud)
我的问题是,根据/usr/include/sys/errno.h我的系统,ENOENT应该有代码2,那么为什么这个错误说errno 34(errno.h中的ERANGE),但是将它与错误消息配对ENOENT?
node.js将系统转换errno为内部"errnos"(参见deps/uv/include/uv.h并uv_translate_sys_error在其中deps/uv/src/unix/error.c或deps/uv/src/win/error.c用于映射),以实现Windows和Unix下的错误条件的通用表示.
34是node.js-errno ENOENT,所以一切都好.
| 归档时间: |
|
| 查看次数: |
13530 次 |
| 最近记录: |