因此,如果我在帶有僞造路徑的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