Vì vậy, nếu tôi chạy lệnh gọi đơn giản này trong node.js v0.6.7 trên OS X 10.6.8 với đường dẫn giả, tôi nhận được lỗi, như mong đợi.Tại sao một sự không khớp giữa errno 34 và mã ENOENT
var fs = require("fs");
fs.stat("/tmp/foo", function(error, stat) {
return console.log(error);
});
It in sản lượng này:
{ [Error: ENOENT, no such file or directory '/tmp/foo'] errno: 34, code: 'ENOENT', path: '/tmp/foo' }
Câu hỏi của tôi là, theo /usr/include/sys/errno.h
trên hệ thống của tôi, ENOENT
cần phải có mã 2, vậy tại sao là lỗi này nói errno 34
(ERANGE trong errno.h), nhưng ghép nối nó với thông báo lỗi từ ENOENT
?
Điều này thực sự hữu ích, cảm ơn. Nhưng tại sao 'require ('hằng số') .IOENT' báo cáo 2 trong trường hợp đó? Có cách nào khác để có được Node's errnos không? –
Một chút trễ, nhưng có thể hữu ích cho người khác: Có vẻ như các errnos không bị lộ bởi nút. Bạn có thể sử dụng mô-đun npm [errno-codes] (https://npmjs.org/package/errno-codes) để nhận các hằng số được xác định trước cho errnos. – basti1302
Tôi thề đây là lỗi nút. Nó phải là '-2' cho mỗi tài liệu: https://nodejs.org/api/errors.html#errors_error_errno – Pacerier