الأخطاء في Node.js
ستواجه التطبيقات التي تعمل في Node.js عمومًا أربع فئات من الأخطاء هي:
- أخطاء JavaScript القياسية مثل <EvalError>، و <SyntaxError>، و <RangeError>، و <ReferenceError>، و <TypeError>، و <URIError>.
- أخطاء النظام التي أُطلقَت بوساطة قيود نظام التشغيل الضمنيَّة (operating system constraints) مثل محاولة فتح ملف غير موجود أو محاولة ارسال بيانات عبر مقبسٍ مغلق.
أخطاء محددة من طرف المستخدم التي تطلق عبر شيفرة التطبيق.
أخطاء التوكيد AssertionError
وهي صنفٌ مخصصٌ من الأخطاء يُطلَق عندما تكتشف Node.js مخالفة منطقية استثنائية لا يجب أن تحدث مطلقًا. تُرمَى هذه الأخطاء عادةً عبر الوحدة assert
.
جميع أخطاء JavaScript وأخطاء النظام التي ترميها Node.js ترث من، أو هي نسخٌ من، الصنف <Error> القياسي في JavaScript، ويُضمَن أن تكون الخاصيات المتاحة في هذا الصنف -على الأقل- متوافرةً هنا أيضًا.
انتشار الخطأ واعتراضه (Error Propagation and Interception)
تدعم Node.js عدَّة آليات لانتشار الخطأ والتعامل معه والتي يمكن تطبيقها أثناء عمل التطبيق. تعتمد كيفية التبليغ عن هذه الأخطاء ومعالجتها بشكل كلي على نوع الكائن Error
ونمط الواجهة البرمجية التي تُستدعَى.
تُعالَج جميع أخطاء JavaScript بوصفها استثناءات تولِّد وترمي خطأً مباشرةً باستعمال الآلية throw
القياسية في JavaScript. تعالج هذه الأخطاء باستعمال التعبير try...catch
الذي توفره لغة JavaScript.
// .غير مُعرَّف z لأن المتغير ReferenceError يُرمَى في هذا المثال الخطأ
try {
const m = 1;
const n = m + z;
} catch (err) {
// .يعالج الخطأ هنا
}
يجب معالجة أيَّ استثناءٍ سيُطلَق عبر استخدام للآلية throw
التي تخص JavaScrip باستعمال التعبير البرمجي try...catch
وإلا ستخرج عملية Node.js مباشرةً.
هنالك بعض الاستثناءات، الواجهات البرمجية المتزامنة (أيُّ تابع كتلي [blocking method] لا يقبل دالة رد نداء callback
، مثل التابع fs.readFileSync
)، التي ستستخدم الآلية throw
للتبليغ عن الأخطاء.
قد يُبلَّغ عن الأخطاء التي تحدث ضمن الواجهات البرمجية المتزامنة بطرائق عدة هي:
- ستقبل أغلب التوابع المتزامنة التي تقبل دالة رد نداء
callback
تمرير الكائنError
كأول وسيط إلى تلك الدالة. إن لم تكن قيمة هذا الوسيطnull
وكان نسخةً من الكائنError
، فهذا يعني أنَّ خطأً ما قد حصل ويجب حينئذٍ أن يُعالَج.
const fs = require('fs');
fs.readFile('a file that does not exist', (err, data) => {
if (err) {
console.error('There was an error reading the file!', err);
return;
}
// Otherwise handle the data
});
- عندما يُستدعَى تابعٌ غير متزامن مع كائن من النوع
EventEmitter
، فيمكن أن تُوجَّه الأخطاء إلى الحدث'error'
الذي يخص ذلك الكائن.
const net = require('net');
const connection = net.connect('localhost');
// :إلى مجرًى 'error' إضافة معالج الحدث
connection.on('error', (err) => {
// إن أعيِد ضبط الاتصال من طرف الخادم، أو إن لم يُتمكَّن من إنشاء
// اتصال، أو واجهت عملية الاتصال أي نوع من الأخطاء، فستُرسَل الأخطاء
// .إلى هنا
console.error(err);
});
connection.pipe(process.stdout);
- قد لا تزال قلة من التوابع غير المتزامنة العادية في Node.js تستعمل الآلية
throw
لإطلاق الاستثناءات التي يجب أن تعالج باستعمال العبارةtry...catch
. لا توجد قائمة تشمل مثل هذه التوابع، لذا ارجع رجاءً إلى توثيق كل تابع لتحديد الآلية الأنسب لمعالجة كل خطأ بالشكل المطلوب.
استعمال الآلية التي تعتمد على الحدث 'error'
شائع بكثرة مع الواجهات البرمجية المتعلقة بالمجاري (stream-based) ومطلقات الحدث (event emitter-based) التي تمثل بنفسها سلسلةً من العمليات الغير متزامنة مع مرور الوقت (كما تعترض عمليةً واحدةً لتركها تمرُّ أو تفشل).
في جميع الكائنات EventEmitter
، إن لم يُعطَ معالج الحدث 'error'
، فسيُرمَى الخطأ مما يتسبب في تبليغ عملية Node.js عن الاستثناء uncaught
وانهيارها إلا إذا استُعملَت الوحدة domain
بشكل مناسب أو رُبِط معالجٌ مع الحدث 'uncaughtException'
.
const EventEmitter = require('events');
const ee = new EventEmitter();
setImmediate(() => {
// 'error' سيؤدي هذا إلى انهيار العملية لأنه لم يضاف معالج الحدث
ee.emit('error', new Error('This will crash'));
});
لا يمكن اعتراض الأخطاء التي تولَّد بهذه الطريقة باستعمال التعبير try...catch
لأنَّها ترمَى بعد خروج شيفرة الاستدعاء (calling code).
يجب على المطورين الرجوع إلى توثيق كل تابع على حدة لتحديد كيفية انتشار الأخطاء التي يطلقها كل تابع بدقة.
ردود النداء «الخطأ أولًا» (Error-first callbacks)
تتبع أغلب التوابع غير المتزامنة المعروضة من قبل الواجهة البرمجية لنواة Node.js نمطًا اصطلاحيًا يُشار إليه على أنَّه رد نداء «الخطأ أولًا» (error-first callback). في هذا النمط، تُمرَّر دالة رد نداء إلى التابع كوسيط؛ عندما تكتمل العملية أو يُطلَق خطأ ما، تستدعَى دالة رد النداء مع تمرير الكائن Error
(إن أعطي أو كان هنالك أي خطأ) كوسيط أول إليها. وإن لم يُطلَق أي خطأٍ، ستكون قيمة الوسيط الأول المُمرَّر إلى دالة رد النداء هي null
.
const fs = require('fs');
function errorFirstCallback(err, data) {
if (err) {
console.error('There was an error', err);
return;
}
console.log(data);
}
fs.readFile('/some/file/that/does-not-exist', errorFirstCallback);
fs.readFile('/some/file/that/does-exist', errorFirstCallback);
لا يمكن استعمال الآلية try...catch
التي تخص JavaScript لاعتراض الأخطاء المولدة عبر الواجهات البرمجية غير المتزامنة. هنالك خطأ شائع يقع فيه المبتدئون وهو محاولتهم استعمال throw
داخل رد النداء «الخطأ أولًا». إليك هذا المثال الذي يشرح هذا الأمر:
// لن يعمل هذا المثال
const fs = require('fs');
try {
fs.readFile('/some/file/that/does-not-exist', (err, data) => {
// الافتراض الخطأ هو أن الخطأ سيُرمَى هنا
if (err) {
throw err;
}
});
} catch (err) {
// لن يقبض هذا على الخطأ المرمي
console.error(err);
}
لن يعمل هذا المثال بالشكل المطلوب لأنَّ دالة رد النداء المُمرَّرة إلى fs.readFile()
تُستدعَى بشكل غير متزامن. في الوقت الذي تُستدعَى فيه دالة رد النداء، ستكون الشيفرة المحيطة (بما فيها الكتلة try { } catch (err) { }
قد خرجت في ذلك الحين. يمكن أن يسبِّب رمي خطأٍ داخل دالة رد النداء انهيار عملية Node.js في أغلب الحالات. إن فُعِّلَت الوحدة domain
أو رُبِط معالجٌ مع process.on('uncaughtException')
، فيمكن حينها اعتراض مثل هذه الأخطاء.
الصنف Error
الصنف Error
هو الكائن Error
العام الموجود في JavaScript الذي لا يدل على أية ظروف محددة تشرح كيفية وقوع الخطأ. تلتقط الكائنات Error
تتبُّع مكدسٍ (stack trace) مُحدِّدةً الموقع حيث أنشئت نسخة من الكائن Error
في الشيفرة، وقد توفر شرحًا عن الخطأ الحاصل.
في حالة الوحدة crypto
فقط، ستُتضمِّن الكائنات Error
مكدس خطأ OpenSSL في خاصية منفصلة تدعَى opensslErrorStack
إن كانت متوافرة عندما يُرمَى الخطأ.
ستكون جميع الأخطاء المولَّدة من طرف Node.js، بما فيها جميع أخطاء النظام و JavaScript، إمَّا نسخًا من الصنف Error
أو وارثةً منه.
new Error(message)
message
: <string>
تنشئ هذه الدالة كانئًا جديدًا من النوع Error
وتضبط قيمة الخاصية Error.message
إلى الرسالة النصية المعطاة. إن مُرِّر كائن إلى الوسيط message
، فستُولَّد الرسالة النصية للخطأ عبر استدعاء message.toString()
. ستُمثِّل الخاصية error.stack
موقعًا محددًا في الشيفرة حيث استدعي new Error()
. تعتمد تعقبات المكدس (stack traces) على واجهة V8 البرمجية لتعقب المكدس. تتوسَّع تعقبات المكدس من أجل إمّا بداية تنفيذ الشيفرة المتزامنة، أو عدد الإطارات المعطى عبر الخاصية Error.stackTraceLimit
مهما كان صغيرًا.
Error.captureStackTrace(targetObject[, constructorOpt])
targetObject
: <Object>constructorOpt
: <Function>
ينشئ هذا التابع الخاصية .stack
في الكائن targetObject
التي تعيد عند الوصول إليها سلسلة نصية تمثل الموقع الذي استدعي عند التابع Error.captureStackTrace()
في الشيفرة.
const myObject = {};
Error.captureStackTrace(myObject);
myObject.stack; // new Error().stack يشبه الاستدعاء
تضاف البادئة ${myObject.name}: ${myObject.message}
إلى السطر الأول للمتعقِّب (trace).
يقبل الوسيط constructorOpt
الاختياري دالةً. إن أعطي، فستُزال جميع الإطارات التي تقع فوق constructorOpt
، بما فيها constructorOpt
، من تعقبات المكدس المولَّد.
فائدة استعمال الوسيط constructorOpt
هي إخفاء تفاصيل تنفيذ توليد الخطأ (error generation) عن المستخدم النهائي. تفحص المثال التالي:
function MyError() {
Error.captureStackTrace(this, MyError);
}
// فسيظهر ،captureStackTrace إلى التابع MyError إن لم يمرر
// ؛ وبتمرير الباني، نحذف بذلك.stack في الخاصية MyError إطار
// .هذا الإطار ونعيد جميع الإطارات الواقعة أسفله
new MyError().stack;
Error.stackTraceLimit
- <number>
تحدِّد الخاصية Error.stackTraceLimit
عدد إطارات المكدس (stack frames) التي يجمعها متعقب المكدس (سواءً وُلِّدَت عبر new Error().stack
أو Error.captureStackTrace(obj)
).
القيمة الافتراضية لهذه الخاصية هي 10، ولكن يمكن ضبطها إلى أية قيمة عددية صالحة في JavaScript. ستُؤثِّر التغييرات على أية تعقبات للمكدس التُقطَت بعد تغيير قيمة هذه الخاصية.
إن ضبطت قيمة هذه الخاصية إلى قيمة غير عددية أو قيمة سالبة، فلن تلتقط تعقبات المكدس أية إطارات.
error.code
- <string>
الخاصية error.code
هي سلسلة نصية تمثل تسميةً (label) تعرِّف نوع الخطأ. ألقِ نظرة على القسم «رموز الخطأ في Node.js» للمزيد من التفاصيل حول رموز محدَّدة.
error.message
- <string>
الخاصية error.message
هي سلسلة نصية تصف الخطأ، وهي نفسها القيمة التي ضُبطَت عند استدعاء الدالة new Error(message)
. ستظهر قيمة الوسيط message
المُمرَّر إلى الباني في السطر الأول من تعقبات المكدس للكائن Error
. على أي حال، تغيير قيمة هذه الخاصية بعد إنشاء الكائن Error
قد لا يؤدي إلى تغيير القيمة الموجودة في السطر الأول من تعقبات المكدس (أي عما كانت عليه عند قراءة error.stack
مثلًا قبل تغيير هذه الخاصية).
const err = new Error('The message');
console.error(err.message);
// The message :سيُطبَع
error.stack
- <string>
الخاصية error.stack
هي سلسلة نصية تصف الموقع الذي أنشئ فيه نسخةٌ من الصنف Error
في الشيفرة.
Error: Things keep happening!
at /home/gbusey/file.js:525:2
at Frobnicator.refrobulate (/home/gbusey/business-logic.js:424:21)
at Actor.<anonymous> (/home/gbusey/actors.js:400:8)
at increaseSynergy (/home/gbusey/actors.js:701:6)
يُنسَّق السطر الأول بالشكل <error class name>: <error message>
، ويُتبَع بسلسلة من إطارات المكدس (يبدأ كل سطر بالكلمة "at"). يصف كل إطار موقع استدعاءٍ ضمن الشيفرة والذي أدى إلى توليد الخطأ. يحاول V8 إظهار اسمٍ لكل دالة (عبر اسم متغير، أو اسم دالة، أو اسم تابع كائن)، ولكنه لن يتمكن أحيانًا من إيجاد اسمٍ مناسبٍ. إن لم يستطع V8 تحديد اسمٍ للدالة، فستظهر معلومات عن الموقع فقط لذلك الإطار. خلا ذلك، سيُظهَر اسم الدالة بعد تحديده مع إضافة معلومات الموقع بين قوسين.
تولَّد الإطارات لدوال JavaScritp فقط. عند تمرير تنفيذٍ بشكل متزامن مثلًا عبر إحدى دوال الإضافة C++ التي تدعى cheetahify
والتي تستدعي بنفسها دالة JavaScript، لن يكون الإطار الذي يمثِّل الاستدعاء cheetahify
موجودًا في تعقبات المكدس.
const cheetahify = require('./native-binding.node');
function makeFaster() {
// بشكل غير متزامن speedy الدالة cheetahify تستدعي
cheetahify(function speedy() {
throw new Error('oh no!');
});
}
makeFaster();
// :سيرمي
// /home/gbusey/file.js:6
// throw new Error('oh no!');
// ^
// Error: oh no!
// at speedy (/home/gbusey/file.js:6:11)
// at makeFaster (/home/gbusey/file.js:5:3)
// at Object.<anonymous> (/home/gbusey/file.js:10:1)
// at Module._compile (module.js:456:26)
// at Object.Module._extensions..js (module.js:474:10)
// at Module.load (module.js:356:32)
// at Function.Module._load (module.js:312:12)
// at Function.Module.runMain (module.js:497:10)
// at startup (node.js:119:16)
// at node.js:906:3
معلومات الموقع ستكون إحدى القيم التالية:
native
، إن مُثَّل الإطار استدعاءً داخليًّا للمراقب V8 (كما في حالة[].forEach).
plain-filename.js:line:column
، إن مُثَّل الإطار استدعاءً داخليًّا للمراقب V8./absolute/path/to/file.js:line:column
، إن مُثَّل الإطار استدعاءً في برنامج مستخدمٍ، أو تبعياته (dependencies).
السلسلة النصية التي تمثل متعقِّب المكدس تولَّد على مضض عندما يتم الوصول إلى الخاصية error.stack
.
يُقيَّد عدد الإطارات الملتقطة عبر متعقب المكدس بضبط قيمة الخاصية Error.stackTraceLimit
إلى قيمة أصغر، أو بجعل عدد الإطارات المتاحة أصغر في حلقة الأحداث (event loop) الحالية.
تولَّد الأخطاء التي على مستوى النظام كما في النُسَخ Error
المُعزَّزة، والتي لها شرح مفصل تجده في القسم «أخطاء النظام».
الصنف AssertionError
الصنف AssertionError
هو صنف فرعي من الصنف Error
يشير إلى فشلٍ في أحد اختبارات التوكيد. للمزيد من التفاصيل، تفحص صفحة الصنف assert.AssertionError
.
الصنف RangeError
الصنف RangeError
هو صنف فرعي من الصنف Error
يشير إلى أنَّ الوسيط المعطى لم يكن ضمن مجموعة أو مجال من القيم المقبولة لدالةٍ ما سواءً كان هذا المجال هو مجالًا عدديًا أو مجموعةً من الخيارات لمعامل الدالة المعطاة.
require('net').connect(-1);
// يجب أن يكون >= 0 و < 65536 "port" لأن الخيار "RangeError سيرمى الخطأ
ستولد Node.js وترمي النسخ RangeError
مباشرةً بوصفها شكلًا من أشكال التحقق من صحة الوسيط.
الصنف ReferenceError
الصنف ReferenceError
هو صنف فرعي من الصنف Error
يشير إلى أنَّه أجريت محاولة للوصول إلى متغير غير معرَّف بعد. تشير مثل هذه الأخطاء إلى وجود أخطاء إملائية في الشيفرة، أو تشير من ناحية أخرى إلى برنامج محطَّم.
بينما قد تولد شيفرة العميل هذه الأخطاء وتنشرها، إلا أنَّ من سيفعل ذلك عمليًّا هو V8 فقط.
doesNotExist;
// غيرموجود في هذا البرنامج doesNotExist لأن ReferenceError سيرمى الخطأ
ما لم يولد ويشغِّل التطبيق ديناميكيًّا الشيفرة، يجب أن تُعدُّ النسخ ReferenceError
على أنَّها خطأ (bug) دومًا في الشيفرة أو ما يتبعها.
الصنف SyntaxError
الصنف SyntaxError
هو صنف فرعي من الصنف Error
يشير إلى أن البرنامج مكتوب بلغة JavaScript غير صالحة. قد تولَّدل هذه الأخطاء وتنشر نتيجةً لتقييم الشيفرة (code evaluation) فقط. قد يُجرَى تقييمٌ للشيفرة نتيجةً لاستعمال eval
، أو Functions
، أو require
، أو vm
. تدل هذه الأخطاء على تطبيق محطم بشكل شبه دائم.
try {
require('vm').runInThisContext('binary ! isNotOk');
} catch (err) {
// err will be a SyntaxError
}
انتبه إلى أنَّ النسخ SyntaxError
غير قابلة للاسترجاع في السياق الذي أنشأها. قد تُلتقَط عن طريق سياقات أخرى فقط.
الصنف TypeError
الصنف TypeError
هو صنف فرعي من الصنف Error
يشير إلى أنَّ الوسيط المعطى ليس من النوع المسموح به. على سبيل المثال، تمرير دالة إلى معامل يتوقَّع أن يُعطَى سلسلة نصية سيُعدُّ خطأً من النوع TypeError
.
require('url').parse(() => { });
// لأنه يُتوقَع أن تُمرَّر سلسلة نصية TypeError سيُرمى الخطأ
ستولد Node.js وترمي النسخ RangeError
مباشرةً بوصفها شكلًا من أشكال التحقق من صحة الوسيط.
الاستثناءات مقابل الأخطاء
الاستثناء في JavaScript هو قيمة تُرمَى نتيجةً لعملية غير صحيحة أو استهدافًا للعبارة throw
. لمَّا كان من غير المطلوب أن تكون هذه القيمة نسخًا من الصنف Error
أو أصنافًا ترث منه، فإن جميع الاستثناءات المرمية من طرف Node.js أو وقت تشغيل JavaScript (أي JavaScript runtime) ستكون نسخًا من الصنف Error
.
بعض الاستثناءات غير قابلة للاسترداد في طبقة JavaScript. ستتسبِّب مثل هذه الاستثناءات في انهيار عملية Node.js دومًا. من الأمثلة على ذلك، تضمين اختبارات assert()
أو استدعاءات abort()
في طبقة C++.
أخطاء النظام (System Errors)
تولَّد أخطاء النظام عندما تحدث الاستثناءات ضمن بيئة وقت تشغيل Node.js. هذه الأخطاء هي أخطاء تشغيلية تحدث عادةً عندما يتعدَّى البرنامج على أحد قيود نظام التشغيل مثل محاولة قراءة ملف غير موجود أو لا يملك المستخدم إذنًا بذلك.
تولَّد أخطاء النظام عادةً في المستوى syscall؛ تتوافر قائمة شاملة برموز الأخطاء وما تعنيه كلًا منها باستعمال الأمر man 2 intro
أو man 3 errno
في أغلب الأنظمة الشبيهة بيونكس. يمكنك أيضًا الاطلاع على هذه القائمة عبر هذه الصفحة.
في Node.js، تُمثَّل أخطاء النظام بوصفها كائنات Error
معزَّزة بخاصيات إضافية.
الصنف SystemError
error.info
قد تملك النسخ SystemError
خاصية إضافية هي info
قيمتها هي كائنٌ يحوي تفاصيل إضافية عن أحوال الخطأ وكيفية حدوثه.
الخاصيات التي تُوفَّر هي:
code
: <string> سلسلة نصية تمثل رمز الخطأ.
errno
: <number> رقم الخطأ الذي يوفره النظام.
message
: <string> وصفٌ قابل للقراءةٌ يوفره النظام عن الخطأ.
syscall
: <string> اسم استدعاء النظام الذي أدى إلى إطلاق الخطأ.
path
: <Buffer> عند التبليغ عن خطأ في نظام الملفات، فستُشير هذه الخاصية إلى مسار الملف.
dest
: <Buffer> عند التبليغ عن خطأ في نظام الملفات، فستُشير هذه الخاصية إلى وجهة مسار الملف (إن كانت متوافرة).
error.code
- <string>
الخاصية error.code
هي سلسلة نصية تمثِّل رمز الخطأ والذي يبدأ عادة بالحرف E
ثم تليه سلسلةٌ من الحروف الكبيرة.
error.errno
- <string> | <number>
الخاصية error.errno
هي عدد أو سلسلة نصية. إن كانت عددًا، فهي قيمة سالبة تتوافق مع رمز الخطأ المعرَّف في معالجة أخطاء المكتبة libuv. ألقِ نظرة على ملف الترويسة uv-errno.h
(موجود في deps/uv/include/uv-errno.h
في شجرة Node.js المصدرية) للمزيد من التفاصيل. أمَّا في حال كانت هذه الخاصية سلسلةً نصيةً، فستكون مماثلة تمامًا للخاصية error.code
.
error.syscall
- <string>
الخاصية error.syscall
هي سلسلة نصية تصف استدعاء النظام (syscall) الذي فشل.
error.path
- <string>
عندما توجد هذه الخاصية (كما في الوحدة fs
أو الوحدة chid_process
)، فستكون سلسلة نصية تحوي اسم المسار غير الصالح الذي له صلة بالخطأ الحاصل.
error.address
- <string>
عندما توجد هذه الخاصية (كما في الوحدة net
أو الوحدة dgram
)، فستكون سلسلة نصية تصف العنوان الذي فشل الاتصال به.
error.port
- <nuber>
عندما توجد هذه الخاصية (كما في الوحدة net
أو الوحدة dgram
)، فستكون عددًا يمثل منفذ الاتصال الغير متاح.
أخطاء النظام الشائعة
هذه القائمة لا تشمل جميع أخطاء النظام، ولكن تتضمَّن أغلب أخطاء النظام الشائعة التي قد تواجهك عند كتابة تطبيق Node.js. إن أردت الاطلاع على القائمة الشاملة، فانتقل إلى هذه الصفحة.
EACCES
(طلب الإذن مرفوض): أجريت محاولة للوصول إلى ملف بطريقة ممنوعة من قِبَل أذونات الوصول للملف.
EADDRINUSE
(العنوان قيد الاستعمال): فشلت محاولة ربط خادم (net، أو http، أو https) بعنوان محلي بسبب وجود خادم آخر على النظام المحلي يستعمل ذلك العنوان.
ECONNREFUSED
(رُفِض الاتصال): لا يمكن إجراء اتصال لأن الجهاز الهدف قد رفض الاتصال بشكل فعال. يكون هذا الأمر نتيجةً لمحاولة الاتصال بخادم غير فعال على المضيف البعيد.
ECONNRESET
(أعيد ضبط الاتصال من طرف الند [peer]): أُغلِق الاتصال قسرًا من طرف ندٍّ. هذا الأمر ناتجٌ عادةً عن فقدان الاتصال مع المقبس البعيد بسبب انتهاء المهلة الزمنية أو إعادة التشغيل. هذا الخطأ شائع في الوحدة http
والوحدة net
.
EEXIST
(الملف موجود): وجدَت عمليةٌ ما أثناء تنفيذها ملفًا هدفًا موجودًا في الوقت الذي يجب أن يكون فيه غير موجود.
EISDIR
(هل هذا مجلد!): توقعت إحدى العمليات أن يكون المسار المعطى تابعًا لملف، ولكن وُجِد أنَّه تابع لمجلد.
EMFILE
(يوجد الكثير من الملفات المفتوحة في النظام): لقد تجاوزت واصفات الملف المسموح بها على النظام الحد الأقصى، ولم يعد بالإمكان إنجاز المزيد من طلبات فتح ملف آخر ما لم يُغلَق أحد الملفات المفتوحة. يحدث هذا الخطأ عند فتح الكثير من الملفات في لحظة معينة بشكل متوازٍ خصوصًا في الأنظمة (نظام macOS تحديدًا) التي تملك حدًّا منخفضًا من واصفات الملفات لاستعمالها مع العمليات. أن أردت اصلاح هذه المشكلة، فنفِّذ الأمر ulimit -n 2048
في نفس الصدفة التي تشغَّل فيها عملية Node.js.
ENOENT
(لا يوجد مثل هذا الملف أو المجلد): يُطلَق هذا الخطأ بكثر في عمليات الوحدة fs
والذي يشير إلى أنَّ مكونًا من مسار الملف المحدد غير موجود.
ENOTDIR
(ليس مجلدًا): اسم المسار المعطى موجودٌ، ولكن لا يشير إلى مجلد كما هو متوقع. تجد هذا الخطأ بكثرة عند استعمال التابع fs.readdir
.
ENOTEMPTY
(المجلد ليس فارغًا): المجلد المستهدف من قبل عملية ليس فارغًا وهو خلاف ما تريده هذه العملية. يصادف هذا الخطأ عادةً مع التابع fs.unlinke
.
EPERM
(عملية غير مسموح بها): أجريت محاولة لتنفيذ عملية تتطلب امتيازات مرتفعة.
EPIPE
(أنبوب مكسور): أجريت محاولة للكتابة على أنبوب، أو مقبس، أو أنبوب مسمى (FIFO) حيث لا توجد عملية لقراءة البيانات. يصادف هذا الخطأ بكثرة في الطبقات net و http والذي يشير حينئذٍ إلى أن الطرف البعيد للمجرى الذي يكتب عليه قد أُغلِق.
ETIMEDOUT
(انتهت مهلة العملية): فشل طلب اتصال أو إرسال بسبب عدم استجابة الطرف المتصل بعد فترة زمنية معينة. يصادف هذه الخطأ بكثرة في الوحدة http والوحدة net، ويشير غالبًا إلى التابع socket.end()
لم يُستدعَ بشكل صحيح.
رموز الخطأ في Node.js
ERR_AMBIGUOUS_ARGUMENT
يُستخدَم الآن وسيط دالة بطريقة تشير إلى أنَّ توقيع الدالة قد يُساء فهمه. يُرمَى هذا الخطأ من طرف الوحدة assert
عندما يطابق المعامل message
في الدالة assert.throws(block, message)
رسالة الخطأ المرميَّة من قبل المعامل block
لأنَّ ذلك الاستخدام يشير إلى اعتقاد المستخدم بأنَّ message
هي الرسالة المتوقعة بدلًا من الرسالة التي سيُظهرها الخطأ AssertionError
إن لم يرمي المعامل block
أي شيء.
ERR_ARG_NOT_ITERABLE
طُلِب وسيط قابل للتكرار (iterable) -مثل طلب قيمة لاستعمالها مع الحلقة for...of
- ولكنه لم يُمرَّر إلى إحدى واجهات Node.js البرمجية.
ERR_ASSERTION
هذا الخطأ هو نوع خاصٌّ من الأخطاء يُطلَق متى ما اكتشفت Node.js مخالفة منطقية استثنائية ما كان يجب أن تحدث. يُطلَق هذا الخطأ عادةً عبر الوحدة assert
.
ERR_ASYNC_CALLBACK
أجريت محاولة لتسجيل شيء ليس دالةً على أنه رد النداء AsyncHooks
.
ERR_ASYNC_TYPE
نوع المورد غير المتزامن غير صالح. انتبه إلى أنَّه بإمكان المستخدمين تعريف نوع خاص بهم إن كانوا يستعملون الواجهة البرمجية embedder العامة.
ERR_BUFFER_OUT_OF_BOUNDS
جرت محاولة للوصول إلى عملية تقع خارج حدود كائن من النوع Buffer
.
ERR_BUFFER_TOO_LARGE
جرت محاولة لإنشاء كائن من النوع Buffer
أكبر من الحجم المسموح به.
ERR_CANNOT_TRANSFER_OBJECT
القيمة التي مُرِّرت إلى postMessage()
حوت على كائن غير مدعوم للنقل.
ERR_CANNOT_WATCH_SIGINT
لم تكن Node.js قادرةً على مراقبة الإشارة SIGINI
.
ERR_CHILD_CLOSED_BEFORE_REPLY
أُغلقَت العملية الابن قبل أن تستلم العملية الأب ردًا بذلك.
ERR_CHILD_PROCESS_IPC_REQUIRED
يُستعمَل هذا الخطأ عندما تحاول عملية ابن أن تتفرع دون تحديد قناة IPC.
ERR_CHILD_PROCESS_STDIO_MAXBUFFER
يُستعمَل هذا الخطأ عندما تحاول عملية رئيسية قراءة بيانات من مجرى الخطأ أو الخرج القياسي (STDERR/STDOUT) للعملية الأب، ويكون طول البيانات أكبر من القيمة المحددة في الخيار maxBuffer
.
ERR_CLOSED_MESSAGE_PORT
أجريت محاولة لاستعمال النسخة MessagePort
في حالة مغلقة (closed state) ويكون ذلك عادةً بعد استدعاء .close()
.
ERR_CONSOLE_WRITABLE_STREAM
أُنشئَت نسخة من الطرفية Console
دون المجرى stdout
، أو كانت تملك المجرى stdout
والمجرى stderr
ولكن لا يمكن الكتابة عليهما (non-writable).
ERR_CONSTRUCT_CALL_REQUIRED
استُدعِي بانيٌ لأحد الأصناف دون استعمال الكلمة المفتاحية new
.
ERR_CPU_USAGE
لا يمكن معالجة الاستدعاء الأصلي من process.cpuUsage
.
ERR_CRYPTO_CUSTOM_ENGINE_NOT_SUPPORTED
محرك شهادة العميل الذي طُلِب غير مدعوم في إصدار OpenSSL المستخدم حاليًا.
ERR_CRYPTO_ECDH_INVALID_FORMAT
مُرِّرَت قيمةٌ غير صالحةٍ للوسيط format
إلى الصنف crypto.ECDH()
والتابع getPublicKey()
.
ERR_CRYPTO_ECDH_INVALID_PUBLIC_KEY
مُرِّرَت قيمةٌ غير صالحة للوسيط key
إلى الصنف crypto.ECDH()
والتابع computeSecret()
. هذا يعني أنَّ المفتاح العام يتوضع خارج المنحني البيضاوي (elliptic curve).
ERR_CRYPTO_ENGINE_UNKNOWN
مُرِّر معرِّفٌ غير صالح لمحرك التشفير (crypto engine) إلى require('crypto').setEngine()
.
ERR_CRYPTO_FIPS_FORCED
استُعمل خيار سطر الأوامر --force-fips
ولكن كان هنالك محاولةٌ لتفعيل أو تعطيل الوضع FIPS في الوحدة crypto
.
ERR_CRYPTO_FIPS_UNAVAILABLE
أجريت محاولة لتفعيل أو تعطيل الوضع FIPS، ولكن الوضع FIPS لم يكن متاحًا.
ERR_CRYPTO_HASH_DIGEST_NO_UTF16
استُعمِل الترميز UTF-16 مع التابع hash.digest()
. لمَّا كان التابع hash.digest()
لا يسمح بأنَّ يُمرَّر إليه الوسيط encoding
، فإنَّ هذا سيتسبَّب في جعل التابع يعيد سلسلة نصية بدلًا الكائن Buffer
، إذ الترميز UTF-16 (مثل ucs
أو utf16le
) غير مدعوم.
ERR_CRYPTO_HASH_FINALIZED
استدعي التابع hash.digest()
عدة مرات. يجب أن يُستدعَى التابع hash.digest()
مرةً واحدةً فقط لكل نسخة من الكائن Hash
.
ERR_CRYPTO_HASH_UPDATE_FAILED
فشل التابع hash.update()
لسبب ما. هذا الخطأ نادر الحدوث، إن لم يكن معدومًا.
ERR_CRYPTO_INVALID_DIGEST
حُدِّدت خوارزمية تشفير غير صالحة لحساب القيمة hash.
ERR_CRYPTO_INVALID_STATE
استُعمِل تابع تشفير مع كائنٍ حالته غير صالحة. تشبه هذه الحالة استدعاء التابع cipher.getAuthTag()
قبل استدعاء التابع cipher.final()
.
ERR_CRYPTO_PBKDF2_ERROR
شغلت الخوارزمية PBKDF2 لسبب مجهول. لم يوفر OpenSSL المزيد من التفاصيل ولا حتى Node.js.
ERR_CRYPTO_SCRYPT_INVALID_PARAMETER
أحد معاملات التابع crypto.scrypt()
أو التابع crypto.scryptSync()
أو أكثر يقع خارج مجاله المسموح.
ERR_CRYPTO_SCRYPT_NOT_SUPPORTED
صُرِّفَت Node.js دون دعم scrypt
. لا يحصل هذا الخطأ مع الإصدار الرسمي، ولكن يمكن أن يحصل مع إصدارات مبنية بشكل مخصَّص بما فيها distro.
ERR_CRYPTO_SIGN_KEY_REQUIRED
لم يُمرَّر مفتاح التوقيع key
إلى التابع sign.sign()
.
ERR_CRYPTO_TIMING_SAFE_EQUAL_LENGTH
استدعي التابع
مع طول مختلف للوسائط Buffer
، أو TypedArray
، أو DataView
.
ERR_DNS_SET_SERVERS_FAILED
فشِل c-ares
بضبط الخادم DNS.
ERR_DOMAIN_CALLBACK_NOT_AVAILABLE
الوحدة domain
غير قابلة للاستخدام منذ عدم تمكنها من تأسيس خطافات معالجة الخطأ المطلوب، وهذا عائدٌ إلى استدعاء process.setUncaughtExceptionCaptureCallback()
في وقت مبكر.
ERR_DOMAIN_CANNOT_SET_UNCAUGHT_EXCEPTION_CAPTURE
لم يُتمكَّن من استدعاء process.setUncaughtExceptionCaptureCallback()
لأنَّ الوحدة domain
قد حُمِّلَت في وقت مبكر.
تُوسَّع تعقبات المكدس (stack trace) لتتضمن نقطة معينة من الزمن والتي حُمِّلَت فيها الوحدة domain
.
ERR_ENCODING_INVALID_ENCODED_DATA
البيانات المُمرَّرة إلى الواجهة البرمجية util.TextDecoder()
غير صالحة وفقًا للترميز المعطى.
ERR_ENCODING_NOT_SUPPORTED
الترميز المعطى للتابع util.TextDecoder()
غير موجود ضمن قائمة ترميزات WHATWG المدعومة.
ERR_FALSY_VALUE_REJECTION
رُفِض الكائن Promise
الذي استدعي كرد نداء عبر
مع قيمة خطأ (falsy value).
ERR_FS_FILE_TOO_LARGE
أجريت محاولة لقراءة ملفٍ حجمه أكبر من الحجم الأقصى المسموح به للكائن Buffer
.
ERR_FS_INVALID_SYMLINK_TYPE
مُرِّر نوعٌ غير صالح للوصلة الرمزية إلى التابع fs.symlink()
أو التابع fs.symlinkSync()
.
ERR_HTTP_HEADERS_SENT
أجريت محاولة لإضافة ترويسات إضافية بعد الترويسة التي قد أرسلت مسبقًا.
ERR_HTTP_INVALID_HEADER_VALUE
حُدِّدت قيمة غير صالحة لترويسة HTTP.
ERR_HTTP_INVALID_STATUS_CODE
رمز حالة الطلب HTTP وقع خارج المجال النظامي لرموز الحالات (وهو 100-999).
ERR_HTTP_TRAILER_INVALID
الترويسة Trailer
قد ضُبطَت رغم أنَّ ترميز عملية النقل (transfer encoding) لا يدعم ذلك.
ERR_HTTP2_ALTSVC_INVALID_ORIGIN
تتطلب الإطارات HTTP/2 ALTSVC مصدرًا صالحًا.
ERR_HTTP2_ALTSVC_LENGTH
قُيِّدَت الإطارات HTTP/2 ALTSVC إلى حد أقصى للحمولة (payload) يقدَّر بالقيمة 16382 بايت.
ERR_HTTP2_CONNECT_AUTHORITY
بخصوص طلبات HTTP/2 التي تستعمل التابع CONNECT
، فإنَّ الترويسة :authority الزائفة (pseudo-header) مطلوبة.
ERR_HTTP2_CONNECT_PATH
بخصوص طلبات HTTP/2 التي تستعمل التابع CONNECT
، فإنَّ الترويسة :path الزائفة (pseudo-header) ممنوعة.
ERR_HTTP2_CONNECT_SCHEME
بخصوص طلبات HTTP/2 التي تستعمل التابع CONNECT
، فإنَّ الترويسة :scheme الزائفة (pseudo-header) ممنوعة.
ERR_HTTP2_ERROR
حدث خطأ HTTP/2 مجهولٌ.
ERR_HTTP2_GOAWAY_SESSION
ربما من غير الممكن فتح مجاري HTTP/2 جديدة بعد أن استلمت Http2Session
الإطار GOAWAY
من الند المتصل.
ERR_HTTP2_HEADERS_AFTER_RESPOND
حُدِّدت ترويسات إضافية بعد أن أُنشِئ ردٌ لطلب HTTP/2.
ERR_HTTP2_HEADERS_SENT
أجريت محاولةٌ لإرسال ترويسات رد متعددة.
ERR_HTTP2_HEADER_SINGLE_VALUE
أعطيت قيم متعددة لحقل ترويسة HTTP/2 يتطلب قيمة واحدة فقط.
ERR_HTTP2_INFO_STATUS_NOT_ALLOWED
رموز حالة HTTP الإعلامية (1xx
) قد لا تُضبَط على أنَّها رمز حالة الرد في ردود HTTP/2.
ERR_HTTP2_INVALID_CONNECTION_HEADERS
يوجد ترويسات اتصال محددة في HTTP/1 ممنوعٌ استعمالها في طلبات وردود HTTP/2.
ERR_HTTP2_INVALID_HEADER_VALUE
حُدِّت قيمة غير صالحة في ترويسة HTTP/2.
ERR_HTTP2_INVALID_INFO_STATUS
حُدِّد رمز حالة إعلامية (informational status code) غير صالحٍ في HTTP. يجب أن تكون رموز الحالة الإعلامية أعدادًا صحيحةً تقع بين 100 و 199 (يدخل ضمن المجال).
ERR_HTTP2_INVALID_PACKED_SETTINGS_LENGTH
يجب أن يكون طول النسخ Buffer
و Uint8Array
المُمرَّرة إلى الواجهة البرمجية http2.getUnpackedSettings()
من مضاعفات العدد 6.
ERR_HTTP2_INVALID_PSEUDOHEADER
قد تُستخدَم ترويسات HTTP/2 الزائفة الصالحة ( :status
، و :path
، و :authority
، و :scheme
، و :method
) فقط.
ERR_HTTP2_INVALID_SESSION
أجريت عملية على كائن مُدمَّر من النوع Http2Session
.
ERR_HTTP2_INVALID_SETTING_VALUE
حُدِّدَت قيمة غير صالحة في إعدادات HTTP/2.
ERR_HTTP2_INVALID_STREAM
أجريت عملية على مجرًى دُمِّر مسبقًا.
ERR_HTTP2_MAX_PENDING_SETTINGS_ACK
متى ما أُرسَل الإطار SETTINGS
الذي يخص HTTP/2 إلى ندٍّ متصلٍ، يُطلب حينئذٍ من الند أن يرسل إشعارًا بأنَّه استلم وطبَّق الإعدادات SETTINGS
الجديدة. قد يُرسَل عددٌ يحدِّد العدد الأقصى للإطارات SETTINGS
التي لم يُستلَم إشعارٌ بها في أي وقت. بناءً على ذلك، يُستعمَل رمز الخطأ هذا عند الوصول إلى ذلك الحد الأقصى.
ERR_HTTP2_NESTED_PUSH
أجريت محاولة لإنشاء مجرى push جديد ضمن مجرى push. لا يُسمَح بإنشاء مجاري push متشعِّبة.
ERR_HTTP2_NO_SOCKET_MANIPULATION
أجريت محاولة للتعديل بشكل مباشر (قراءة، أو كتابة، أو إيقاف مؤقت، أو استئناف ...إلخ.) على مقبس مرتبط بكائن من النوع Http2Session
.
ERR_HTTP2_OUT_OF_STREAMS
وصل عدد المجاري المنشأة في جلسة HTTP/2 واحدة إلى الحد الأقصى.
ERR_HTTP2_PAYLOAD_FORBIDDEN
حُدِّدت رسالة حملٍ (message payload) لرمز رد HTTP يُمنَع أي حمل فيه.
ERR_HTTP2_PING_CANCEL
أُلغِيت العملية ping من أجل HTTP/2.
ERR_HTTP2_PING_LENGTH
يجب أن تكون أحمال العملية ping من أجل HTTP/2 بطول 8 بايت بالضبط.
ERR_HTTP2_PSEUDOHEADER_NOT_ALLOWED
أُستعملَت ترويسة HTTP/2 زائفة بشكل غير ملائم. الترويسات الزائفة هي أسماء ترويسة مفتاح (header key names) تبدأ بالبادئة :
.
ERR_HTTP2_PUSH_DISABLED
أجريت محاولة لإنشاء مجرى push عُطِّل من طرف العميل.
ERR_HTTP2_SEND_FILE
أجريت محاولة لاستعمال الواجهة البرمجية Http2Stream.prototype.responseWithFile()
لإرسال مجلَّدٍ.
ERR_HTTP2_SEND_FILE_NOSEEK
أجريت محاولة لاستعمال الواجهة البرمجية Http2Stream.prototype.responseWithFile()
لإرسال أي شيء غير ملف نظامي إلا أنَّ الخيارين offest
و lenght
قد أُعطيَا.
ERR_HTTP2_SESSION_ERROR
أغلق Http2Session
مع رمز خطأ غير صفري.
ERR_HTTP2_SETTINGS_CANCEL
ألغيت إعدادات Http2Session
.
ERR_HTTP2_SOCKET_BOUND
أجريت محاولة لربط كائن من النوع Http2Session
مع المقبس net.Socket
أو المقبس tls.TLSSocket
الذي رُبِط به كائن آخر من النوع Http2Session
من قبل.
ERR_HTTP2_SOCKET_UNBOUND
أجريت محاولة لاستعمال الخاصية socket
لكائن من النوع Http2Session
قد أُغلِق قبل ذلك الحين.
ERR_HTTP2_STATUS_101
استعمال رمز الحالة الإعلامية 101
ممنوعٌ في HTTP/2.
ERR_HTTP2_STATUS_INVALID
حُدِّد رمز حالة (status code) غير صالح في HTTP. يجب أن تكون رموز الحالة أعدادًا صحيحة وتقع ضمن المجال 100 و 599 (يدخل ضمن المجال).
ERR_HTTP2_STREAM_CANCEL
دُمِّر كان من النوع Http2Stream
قبل نقل أية بيانات إلى الند المتصل.
ERR_HTTP2_STREAM_ERROR
حُدِّد رمز خطأ غير صفري في الإطار RST_STREAM
.
ERR_HTTP2_STREAM_SELF_DEPENDENCY
عند ضبط الأولوية لمجرى HTTP/2، قد توضع علامة على المجرى بوصفه تابعًا لمجرى أب. يُستعمَل رمز الخطأ هذا عندما تُجرَى محاولةٌ لوضع علامة على مجرى بوصفه يعتمد على نفسه.
ERR_HTTP2_TRAILERS_ALREADY_SENT
ترويسات زائدة قد أُرسلَت مسبقًا في Http2Stream
.
ERR_HTTP2_TRAILERS_NOT_READY
لا يمكن استدعاء التابع http2stream.sendTrailers()
حتى يُطلَق الحدث 'wantTrailers'
في الكائن Http2Stream
. سيُطلَق الحدث 'wantTrailers'
عندما يُضبَط الخيار waitForTrailers
للكائن Http2Stream
.
ERR_HTTP2_UNSUPPORTED_PROTOCOL
مُرِّر إلى التابع http2.connect()
عنوان URL يستعمل أيَّ بروتوكول باستثناء http:
أو https:
.
ERR_INDEX_OUT_OF_RANGE
الفهرس المعطى يقع خارج المجال المقبول (مثل استعمال قيمة سالبة مع الإزاحات [offsets]).
ERR_INSPECTOR_ALREADY_CONNECTED
أثناء استعمال الوحدة inspector
، أجريت محاولةٌ للاتصال في الوقت الذي كان فيه المراقب متصلًا بالفعل.
ERR_INSPECTOR_CLOSED
أثناء استعمال الوحدة inspector
، أجريت محاولةٌ لاستعمال المراقب بعد إغلاق الجلسة.
ERR_INSPECTOR_NOT_AVAILABLE
الوحدة inspector
غير متاحة للاستعمال.
ERR_INSPECTOR_NOT_CONNECTED
أثناء استعمال الوحدة inspector
، أجريت محاولةٌ لاستعمال المراقب قبل أن يصبح متصلًا.
ERR_INVALID_ADDRESS_FAMILY
عائلة العنوان المعطى غير معروفة من قبل واجهة Node.js البرمجية.
ERR_INVALID_ARG_TYPE
مُرِّر وسيطٌ نوعه خطأ إلى إحدى واجهات Node.js البرمجية.
ERR_INVALID_ARG_VALUE
استُعملَت قيمة غير صالحة أو غير مفهومة مع وسيطٍ معطى.
ERR_INVALID_ARRAY_LENGTH
لم تكن المصفوفة بالطول المتوقع أو ضمن مجال مقبول.
ERR_INVALID_ASYNC_ID
مُرَّرت قيمة غير صالحة للمعرِّف asyncId
أو المعرِّف triggerAsyncId
باستعمال AsyncHooks. لا يجب أن يصدف استعمال معرِّف أقل من القيمة 1-.
ERR_INVALID_BUFFER_SIZE
أجريت عملية مبادلة (swap) على كائن من النوع Buffer
ولكن حجمه لم يكن متوافقًا مع العملية.
ERR_INVALID_CALLBACK
هنالك دالة رد نداء مطلوبة ولكنها لم تُعطَ لواجهة Node.js البرمجية.
ERR_INVALID_CHAR
عُثِر على محرفٍ غير صالح في الترويسة.
ERR_INVALID_CURSOR_POS
لا يستطيع المؤشر في المجرى المعطى التحرك إلى سطر محدد دون تحديد العمود.
ERR_INVALID_DOMAIN_NAME
لا يمكن تحليل اسم المضيف hostname
من العنوان URL المعطى.
ERR_INVALID_FD
واصف الملف ('fd') غير صالح (مثل أن يكون قيمة سالبة).
ERR_INVALID_FD_TYPE
نوع واصف الملف ('fd') غير صالح.
ERR_INVALID_FILE_URL_HOST
صادفت إحدى واجهات Node.js البرمجية التي تستهلك عناوين URL ذات النوع file:
(مثل بعض دوال الوحدة fs
) عنوانَ URL لملفٍ مع مضيف غير متوافق. تحدث هذه الحالة في الأنظمة الشبيهة بيونكس فقط التي يكون فيها المضيف localhost
أو مضيفٌ فارغٌ مدعومًا.
ERR_INVALID_FILE_URL_PATH
صادفت إحدى واجهات Node.js البرمجية التي تستهلك عناوين URL ذات النوع file:
(مثل بعض دوال الوحدة fs
) عنوانَ URL لملفٍ مع مسار غير متوافق. تعتمد الدلالات (semantics) الدقيقة لتحديد إن كان مسارٌ ما يمكن استخدامه أم لا على نظام التشغيل.
ERR_INVALID_HANDLE_TYPE
أجريت محاولة لإرسال معالج غير مدعوم عبر قناة الاتصال IPC إلى عملية ابن. تفحَّص توثيق التابع subprocess.send()
والتابع process.send()
للمزيد من المعلومات.
ERR_INVALID_HTTP_TOKEN
أُعطِي جزءٌ (token) غير صالح من HTTP.
ERR_INVALID_IP_ADDRESS
العنوان IP غير صالح.
ERR_INVALID_OPT_VALUE
مُرِّرت قيمة غير صالحة أو غير متوقعة إلى أحد خيارات كائنٍ.
ERR_INVALID_OPT_VALUE_ENCODING
مُرِّر ترميز ملفٍ غير صالح أو غير مُعرَّف.
ERR_INVALID_PERFORMANCE_MARK
أثناء استخدام الواجهة البرمجية لتوقيت الأداء (perf_hooks
)، صودفت علامة أداء (performance mark) غير صالحة.
ERR_INVALID_PROTOCOL
مُرِّر options.protocol
غير صالح.
ERR_INVALID_REPL_EVAL_CONFIG
ضُبطَ الخياران breakEvalOnSigint
و eval
كلاهما في وضع التهيئة REPL، وهو غير المدعوم.
ERR_INVALID_RETURN_PROPERTY
يُرمى هذا الخطأ في حال لم يوفِّر أحد خيارات دالة قيمة صالحة لإحدى خاصيات الكائن المعادة عند التنفيذ.
ERR_INVALID_RETURN_PROPERTY_VALUE
يُرمى هذا الخطأ في حال لم يوفِّر أحد خيارات دالة نوع القيمة المتوقع لإحدى خاصيات الكائن المعادة عند التنفيذ.
ERR_INVALID_RETURN_VALUE
يُرمى هذا الخطأ في حال لم يعيد أحد خيارات دالة نوع القيمة المتوقع عند التنفيذ.
ERR_INVALID_SYNC_FORK_INPUT
مُرِّر الكائن Buffer
، أو TypedArray
، أو DataView
، أو string
كمدخلات لمجاري الدخل والخرج القياسية (stdio) إلى التابع fork
لتوليد عملية غير متزامنة. ارجع إلى توثيق الوحدة child_process
للاطلاع على المزيد من المعلومات.
ERR_INVALID_THIS
استُدعيَت إحدى واجهات Node.js البرمجية مع القيمة this غير المتوافقة.
const urlSearchParams = new URLSearchParams('foo=bar&baz=new');
const buf = Buffer.alloc(1);
urlSearchParams.has.call(buf, 'foo');
// 'ERR_INVALID_THIS' مع الرمز TypeError سيُرمَى الخطأ
'ERR_INVALID_THIS'
مُرِّر كائن نقل غير صالح إلى postMessage()
.
ERR_INVALID_TUPLE
عنصرٌ في الكائن iterable
المُمرَّر إلى WHATWG (الباني URLSearchParams) لا يمثِّل صفًا بالشكل [name, value]
؛ هذا يعني أنَّ عنصرًا ما غير قابل للتكرار أو لا يتألف من العنصرين المشار إليهما آنفًا.
ERR_INVALID_URI
مُرِّر عنوان URI غير صالح.
ERR_INVALID_URL
مُرِّر عنوان URL غير صالح إلى WHATWG (الباني URL) لتحليله. يملك الكائن error
المرمي عادةً خاصية إضافية هي 'input'
التي تحوي العنوان URL الذي فشل في عملية التحليل.
ERR_INVALID_URL_SCHEME
أجريت محاولة لاستعمال عنوان URL لبروتوكول غير متوافق من أجل غرض محدد. يستخدم هذا العنوان في الواجهة WHATWG URL البرمجية المدعومة في الوحدة fs
(التي تقبل عناوين URL مع البروتوكول 'file'
)، ولكن قد يستخدم أيضًا في واجهة أخرى من واجهات Node.js البرمجية في المستقبل.
ERR_IPC_CHANNEL_CLOSED
أجريت محاولة لاستعمال قناة الاتصال IPC التي أغلقت آنفًا.
ERR_IPC_DISCONNECTED
أجريت محاولة لقطع اتصال القناة IPC التي قُطِع اتصالها مسبقًا. انتقل إلى توثيق الوحدة child_process
للمزيد من المعلومات.
ERR_IPC_ONE_PIPE
أجريت محاولة لإنشاء عملية Node.js ابن تستعمل أكثر من قناة اتصال IPC واحدة. انتقل إلى توثيق الوحدة child_process
للمزيد من المعلومات.
ERR_IPC_SYNC_FORK
أجريت محاولة لفتح قناة اتصال IPC مع عملية Node.js وُلِّدَت بشكل متزامن. انتقل إلى توثيق الوحدة child_process
للمزيد من المعلومات.
ERR_MEMORY_ALLOCATION_FAILED
فشلت عملية إجراء محاولة لحجز جزءٍ من الذاكرة (يحدث عادةً في طبقة C++).
ERR_METHOD_NOT_IMPLEMENTED
يُطلَب تابع ولكن لا يمكن تنفيذه.
ERR_MISSING_ARGS
لم يُمرَّر الوسيط المطلوب في إحدى واجهات Node.js البرمجية. يُستخدَم هذا في المطابقة الصارمة (strict compliance) مع مواصفات الواجهة البرمجية (التي قد تقبل في بعض الحالات func(undefined) ولكن ليس func()
). في أغلب واجهات Node.js البرمجية الأساسية، تُعامَل func(undefined)
و func()
بشكل مماثل، وربما يُستعمَل رمز الخطأ ERR_INVALID_ARG_TYPE
بدلًا من ذلك.
ERR_MISSING_DYNAMIC_INSTANTIATE_HOOK
الاستقرار: 1- قيد التجريب
خطاف مُحمِّل الوحدة ES6
حدَّد format: 'dynamic'
ولكن لم يُوفِّر الخطاف dynamicInstantiate
.
ERR_MISSING_MESSAGE_PORT_IN_TRANSFER_LIST
عُثر على MessagePort
في الكائن الذي مُرِّر إلى استدعاء postMessage()
، ولكنه لم يُعطَ في transferList
لذلك الاستدعاء.
ERR_MISSING_MODULE
الاستقرار: 1 - قيد التجريب
لا يمكن استبيان (resolve) الوحدة ES6
.
ERR_MISSING_PLATFORM_FOR_WORKER
لا تدعم المنصة V8 التي تستخدمها نسخة Node.js الحالية إنشاء عمليات عاملة (Workers). يحدث هذا بسبب نقص دعم الواجهة البرمجية المضمِّنة (Embedder (API)) للعمليات العاملة. على وجه التحديد، لن يحدث هذا الخطأ مع بنية Node.js القياسية.
ERR_MODULE_RESOLUTION_LEGACY
الاستقرار: 1 - قيد التجريب
حدث فشل أثناء استبيان الواردات في الوحدة ES6
.
ERR_MULTIPLE_CALLBACK
استدعي رد النداء أكثر من مرة.
من المفترض أن يستدعى رد النداء مرةً واحدةً فقط دومًا، إذ يمكن إمَّا أن تُنجَز التعليمة أو تُرفَض ولكن لا يمكن أن يحصل كلا الأمرين في الوقت نفسه. في الحالة الأخير، سيكون من الممكن استدعاء رد النداء أكثر من مرة.
ERR_NAPI_CONS_FUNCTION
أثناء استعمال N-API
، لم يكن الباني الذي مُرِّر دالةً.
ERR_NAPI_INVALID_DATAVIEW_ARGS
أثناء استدعاء napi_create_dataview()
، كان الوسيط offset
المعطى خارج حدود الكائن dataView
أو كان offset + length
أكبر من طول الكائن Buffer
المعطى.
ERR_NAPI_INVALID_TYPEDARRAY_ALIGNMENT
أثناء استدعاء napi_create_typedarray()
، لم يكن الكائن offset
المعطى من مضاعفات حجم العنصر.
ERR_NAPI_INVALID_TYPEDARRAY_LENGTH
أثناء استدعاء napi_create_typedarray()
، كانت القيمة (length * size_of_element) + byte_offset
أكبر من طول الكائن Buffer
المعطى.
ERR_NAPI_TSFN_CALL_JS
حصل خطاٌ أثناء استدعاء جزءٍ من JavaScript للدالة ذات الخيوط السليمة (thread-safe function).
ERR_NAPI_TSFN_GET_UNDEFINED
حصل خطأٌ أثناء محاولة استعادة القيمة undefined
التي تخص JavaScript.
ERR_NAPI_TSFN_START_IDLE_LOOP
في الخيط العام (main thread)، حُذفَت قيمٌ من الطابور المرتبط مع الدالة ذات الخيوط السليمة (thread-safe function) في حلقة تكرار خاملة (idle loop). يشير هذا الخطأ إلى أنَّه حصل خطأ عند محاولة بدء الحلقة التكرارية.
ERR_NAPI_TSFN_STOP_IDLE_LOOP
متى لم يعد هنالك عناصر أخرى متبقية، في الطابور، يجب تعليق عمل الحلقة الخاملة (idle loop) مؤقتًا. يشير هذا الخطأ إلى فشل إيقاف الحلقة الخاملة عن العمل.
ERR_NO_CRYPTO
أجريت محاولة لاستعمال مزايا وحدة التشفير (crypto
) في الوقت الذي لم تكن فيه Node.js قد بُنيَت (compiled) مع دعم OpenSSL crypto.
ERR_NO_ICU
أجريت محاولة لاستعمال مزايا تتطلب ICU، ولكنَّ Node.js قد بُنيَت دون دعم ICU.
ERR_NO_LONGER_SUPPORTED
استدعيت إحدى واجهات Node.js البرمجية بطريقة غير مدعومة، مثل استدعاء التابع Buffer.write()
بالشكل Buffer.write(string, encoding, offset[, length])
.
ERR_OUT_OF_RANGE
القيمة المعطاة تقع خارج المجال المقبول.
ERR_REQUIRE_ESM
الاستقرار: 1 - قيد التجريب
أجريت محاولة لطلب الوحدة ES6
عبر require()
.
ERR_SCRIPT_EXECUTION_INTERRUPTED
أُنهِي تنفيذ الشيفرة البرمجية عبر الإشارة SIGINI
(هذا شبيه باستعمال الاختصار Ctrl + C في سطر الأوامر).
ERR_SERVER_ALREADY_LISTEN
استدعي التابع server.listen()
في حين كان net.Server
يستمع آنذاك. هذا ينطبق على كل نسخ net.Server
من ضمنها نسخ Server
في HTTP، و HTTPS، و HTTP/2.
ERR_SERVER_NOT_RUNNING
استدعي التابع server.close()
في حين لم يكن net.Server
يعمل آنذاك. هذا ينطبق على كل نسخ net.Server
من ضمنها نسخ Server
في HTTP، و HTTPS، و HTTP/2.
ERR_SOCKET_ALREADY_BOUND
أجريت محاولة لربط مقبس رُبَط مسبقًا.
ERR_SOCKET_BAD_BUFFER_SIZE
مُرِّر حجم غير صالح (سالب) إمَّا إلى الخيار recvBufferSize
أو الخيار sendBufferSize
في التابع dgram.createSocket()
.
ERR_SOCKET_BAD_PORT
استلمت إحدى دوال الواجهة البرمجة قيمة غير صالحة للمقبس في حين كانت تتوقع أنَّ تقع قيمة المنفذ > 0 و < 65536.
ERR_SOCKET_BAD_TYPE
استلمت إحدى دوال الواجهة البرمجة نوعًا غير صالح للمقبس في حين كانت تتوقع أن يكون نوع المقبس إمَّا udp4
أو udp6
.
ERR_SOCKET_BUFFER_SIZE
أثناء استعمال التابع dgram.createSocket()
، لم يعد بالإمكان تحديد حجم الكائن Buffer
المرسل أو المستقبل.
ERR_SOCKET_CANNOT_SEND
لا يمكن إرسال البيانات عبر المقبس.
ERR_SOCKET_CLOSED
أجريت محاولة لإجراء عملية على مقبس قد أغلق حينها.
ERR_SOCKET_DGRAM_NOT_RUNNING
أجري استدعاءٌ ولكن لم يكن النظام UDP الفرعي يعمل آنذاك.
ERR_STDERR_CLOSE
أجريت محاولة لإغلاق المجرى process.stderr
. لا تسمح Node.js -وفقًا لتصميمها- بإغلاق المجرى stdout
أو المجرى stderr
من طرف شيفرة المستخدم.
ERR_STDOUT_CLOSE
أجريت محاولة لإغلاق المجرى process.stdout
. لا تسمح Node.js -وفقًا لتصميمها- بإغلاق المجرى stdout
أو المجرى stderr
من طرف شيفرة المستخدم.
ERR_STREAM_CANNOT_PIPE
أجريت محاولة لاستدعاء stream.pipe()
على مجرًى قابلٍ للكتابة.
ERR_STREAM_DESTROYED
لم يعد بإمكان تابع استدعي مع مجرى أن يكمل عمله بسبب تدمير هذا المجرى باستعمال stream.destroy()
.
ERR_STREAM_NULL_VALUES
أجريت محاولةٌ لاستدعاء التابع stream.write()
مع القيمة null
.
ERR_STREAM_PREMATURE_CLOSE
أعيد خطأ بوساطة stream.finished()
و stream.pipeline()
عندما ينتهي مجرًى أو أنبوب (pipeline) بشكل غير سلس مع خطأ غير واضح.
ERR_STREAM_PUSH_AFTER_EOF
أجريت محاول لاستدعاء stream.push()
بعد أن أضيفت القيمة null
(نهاية الملف EOF) إلى المجرى.
ERR_STREAM_UNSHIFT_AFTER_END_EVENT
أجرت محاولة لاستدعاء stream.unshift()
بعد أن أُطلَق الحدث 'end'
.
ERR_STREAM_WRAP
منع عملية الاجهاض (abort) إن ضُبِط مفكك ترميز سلسلة نصية (string decoder) على مقبس أو إن كان المُفكِّك في objectMode
.
const Socket = require('net').Socket;
const instance = new Socket();
instance.setEncoding('utf8');
ERR_STREAM_WRITE_AFTER_END
أجريت محاولة لاستدعاء التابع stream.write()
بعد أن استدعي التابع stream.end()
.
ERR_STRING_TOO_LONG
أجريت محاولة لإنشاء سلسلة نصية أطول من الحد الأقصى المسموح به.
ERR_SYSTEM_ERROR
حدث خطأ نظام غير محدد ضمن عملية Node.js. سيكون للكائن error
خاصية الكائن err.info
مع تفاصيل إضافية.
ERR_TLS_CERT_ALTNAME_INVALID
أثناء استعمال TLS، لم يطابق اسم المضيف أو العنوان IP للند أيًّا من القيم subjectAltNames
في شهادته.
ERR_TLS_DH_PARAM_SIZE
أثناء استعمال TLS، المعامل الذي عُرِض من أجل بروتوكول وسيط مفتاح Diffie-Hellman ( DH
) صغيرٌ جدًا. يجب أن يكون طول المفتاح بشكل افتراضي أكبر من أو يساوي 1024 بت لمنع حدوث أية نقطة ضعف رغم أنه يوصى بشدة باستعمال القيمة 2048 بت أو قيمة أكبر منها لزيادة الأمان.
ERR_TLS_HANDSHAKE_TIMEOUT
انتهت مهلة المصافحة TLS/SSL. في هذه الحالة، يجب على الخادم أن يجهض الاتصال أيضًا.
ERR_TLS_RENEGOTIATE
أجريت محاولة إعادة عملية التفاوض على جلسة TLS قد فشلت مسبقًا.
ERR_TLS_RENEGOTIATION_DISABLED
أجريت محاولة لإعادة مفاوضة TLS على نسخة socket
مع كون TLS معطَّلًا.
ERR_TLS_REQUIRED_SERVER_NAME
أثناء استعمال TLS، استدعي التابع server.addContext()
دون تمرير صلاحيات اسم المضيف (hostname) في المعامل الأول.
ERR_TLS_SESSION_ATTACK
اكتشف مقدار مفرط من عمليات إعادة مفاوضة TLS التي من المحتمل أن يكون عاملًا لهجمات الحرمان من الخدمة (denial-of-service attacks)
ERR_TLS_SNI_FROM_SERVER
أجريت محاولة لإصدار «إشارة اسم الخادم» (Server Name Indication) من مقبس TLS من طرف الخادم والذي لا يكون صالحًا إلا من طرف العميل.
ERR_TRACE_EVENTS_CATEGORY_REQUIRED
يتطلب التابع trace_events.createTracing()
تعقب فئة حدث واحدة على الأقل.
ERR_TRACE_EVENTS_UNAVAILABLE
لا يمكن تحميل الوحدة trace_events
لأنَّ Node.js قد بُنيَت (compiled) مع الراية --without-v8-platform
.
ERR_TRANSFERRING_EXTERNALIZED_SHAREDARRAYBUFFER
صودف كائن SharedArrayBuffer
ذاكرته لا تدار من طرف محرك JavaScript أو من طرف Node.js أثناء عملية الترميز (serialization). كائنٌ مثل SharedArrayBuffer
لا يمكن تطبيق عملية ترميز عليه.
يمكن أن يحدث هذا الخطأ عندما تنشئ إضافات أساسية (native addons) الكائنات SharedArrayBuffer
في الوضع "externalized"، أو وضع الكائنات SharedArrayBuffer
الموجودة في الوضع "externalized".
ERR_TRANSFORM_ALREADY_TRANSFORMING
انتهى المجرى Transform
في الوقت الذي كانت فيه عملية النقل تعمل.
ERR_TRANSFORM_WITH_LENGTH_0
انتهى المجرى Transform
ومازال هنالك بيانات تنتظر الكتابة في المخزَّن المؤقت.
ERR_TTY_INIT_FAILED
فشلت عملية تهيئة TTY، وهذا عائد إلى خطأٍ من النظام.
ERR_UNCAUGHT_EXCEPTION_CAPTURE_ALREADY_SET
استدعي process.setUncaughtExceptionCaptureCallback()
مرتين دون إعادة ضبط رد النداء إلى null</code.
أوجد هذا الخطأ لمنع استبدال رد نداءٍ مسجلٍ من طرف وحدة أخرى عن طريق الخطأ.
ERR_UNESCAPED_CHARACTERS
استُلمَت سلسلة نصية تحوي محارف غير مهرَّبة (unescaped characters).
ERR_UNHANDLED_ERROR
حدث خطأ ولم يعالج (مثل إطلاق الحدث 'error'
من طرف EventEmitter
دون أن يكون هنالك أي معالج حدث مرتبط به).
ERR_UNKNOWN_BUILTIN_MODULE
يُستعمَل هذا الخطأ لتعريف نوع محدد من أخطاء Nodejs الداخلية التي لا يجب أن تُطلق عادةً من طرف شيفرة المستخدم. تشير نسخ هذا الخطأ إلى خطأ داخلي (internal bug) ضمن ملف Node.js التنفيذي نفسه.
ERR_UNKNOWN_ENCODING
مُرِّر ترميزٌ غير صالح أو غير معروف إلى إحدى الواجهات البرمجية.
ERR_UNKNOWN_FILE_EXTENSION
الاستقرار: 1 - قيد التجريب
أجريت محاولة لتحميل وحدة مع لاحقة ملف غير معروفة أو غير مدعومة.
ERR_UNKNOWN_MODULE_FORMAT
الاستقرار: 1 - قيد التجريب
أجريت محاولة لتحميل وحدة مع صيغة غير معروفة أو غير مدعومة.
ERR_UNKNOWN_SIGNAL
مُرِّرَت إشارة عملية غير صالحة أو غير معروفة إلى إحدى الواجهات البرمجية التي تتوقع أن يصلها إشارة صالحة (مثل subprocess.kill()
).
ERR_UNKNOWN_STDIN_TYPE
أجريت محاولة لبدء عملية Node.js مع نوع ملف غير معروف لمجرى الدخل القياسي (stdin). هذا الخطأ هو إشارةٌ على وجود خطأ داخل Node.js نفسها رغم أنَّه من المحتمل أن يُطلَق من طرف شيفرة المستخدم نفسها.
ERR_UNKNOWN_STREAM_TYPE
أجريت محاولة لبدء عملية Node.js مع نوع ملف غير معروف لمجرى الخرج القياسي (stdout) ومجرى الخطأ القياسي (stderr). هذا الخطأ هو إشارةٌ على وجود خطأ داخل Node.js نفسها رغم أنَّه من المحتمل أن يُطلَق من طرف شيفرة المستخدم نفسها.
ERR_V8BREAKITERATOR
استُعملَت الواجهة BreakIterator
البرمجية التي تخص V8 ولكن كامل ضبط بيانات ICU لم يُثبَّت بعد.
ERR_VALID_PERFORMANCE_ENTRY_TYPE
أثناء استعمال الواجهة البرمجية لتوقيت الأداء ( pref_hooks
)، لم يُعثَر على أنواع صالحة لمدخلات الأداء.
ERR_VM_MODULE_ALREADY_LINKED
الوحدة التي حاولت أن تُوصَل غير مؤهلة لذلك وهذا عائد لأحد الأسباب التالية:
- الوحدة موصولة من قبل (تكون الحالة
linkingStatus
هي 'linked'
)، أو
- الوحدة قيد التوصيل (تكون الحالة
linkingStatus
هي 'linking'
)، أو
- فشل توصيل هذه الوحدة (تكون الحالة
linkingStatus
هي 'errored'
).
ERR_VM_MODULE_DIFFERENT_CONTEXT
الوحدة التي يتم إعادتها من الدالة الواصلة (linker function) هي من سياق مختلف عن الوحدة الأب. يجب أن تتشارك الوحدات الموصولة السياق نفسه.
ERR_VM_MODULE_LINKING_ERRORED
أعادت الوحدة الموصولة وحدةً فشلت عملية توصيلها.
ERR_VM_MODULE_NOT_LINKED
يجب وصل الوحدة بنجاح قبل إنشاء نسخة منها.
ERR_VM_MODULE_NOT_MODULE
القيمة المنجزة للوعد (promise) الذي يجري وصله ليست كائنًا من النوع vm.SourceTextModule
.
ERR_VM_MODULE_STATUS
لا تسمح حالة الوحدة الحالية بهذه العملية. يعتمد المعنى الدقيق لهذا الخطأ على الدالة المستعملة.
ERR_WORKER_PATH
مسار الشيفرة البرمجية الرئيسية لعملية عاملة ليس مسارًا مطلقًا ولا مسارًا نسبيًّا (مع ./
أو ../
).
ERR_WORKER_UNSERIALIZABLE_ERROR
فشلت جميع المحاولات عند سلسَلة (serializing) استثناء غير ملتقط من خيط عملية عاملة.
ERR_WORKER_UNSUPPORTED_EXTENSION
إنَّ لاسم المسار المستعمل من أجل الشيفرة البرمجية الرئيسية لعملية عاملة لاحقة ملف غير معروفة.
ERR_ZLIB_INITIALIZATION_FAILED
فشلت عملية إنشاء كائن من النوع zlib
بسبب خطأ في الضبط.
MODULE_NOT_FOUND
لا يمكن استبيان (resolve) ملف الوحدة أثناء محاولة تنفيذ العملية require()
أو العملية import
.
رموز الخطأ الإرثية في Node.js
الاستقرار: 0 - مهمل. رموز الخطأ هذه إمَّا متعارضة (غير متناسقة) أو محذوفة من قبل.
ERR_HTTP2_FRAME_ERROR
أضيف في الإصدار: v9.0.0. أزيل بدءًا من الإصدار: v.10.0.0.
استُعمِل عند فشل إرسال إطار بمفرده في جلسة HTTP/2.
ERR_HTTP2_HEADERS_OBJECT
أضيف في الإصدار: v9.0.0. أزيل بدءًا من الإصدار: v.10.0.0.
استُعمِل عندما يُتوقَّع كائن الترويسات HTTP/2.
ERR_HTTP2_HEADER_REQUIRED
أضيف في الإصدار: v9.0.0. أزيل بدءًا من الإصدار: v.10.0.0.
استُعمِل عند فقد ترويسة مطلوبة في رسالة HTTP/2.
ERR_HTTP2_INFO_HEADERS_AFTER_RESPOND
أضيف في الإصدار: v9.0.0. أزيل بدءًا من الإصدار: v.10.0.0.
استُعمِل عندما يتوجب إرسال ترويسات HTTP/2 إعلامية قبل استدعاء التابع Http2Stream.prototype.respond()
.
ERR_HTTP2_STREAM_CLOSED
أضيف في الإصدار: v9.0.0. أزيل بدءًا من الإصدار: v.10.0.0.
استُعمِل عند تنفيذ إجراء على مجرى HTTP/2 كان مغلقًا في ذلك الحين.
ERR_HTTP_INVALID_CHAR
أضيف في الإصدار: v9.0.0. أزيل بدءًا من الإصدار: v.10.0.0.
استُعمِل عند العثور على محرف غير صالح في رسالة حال الرد في HTTP (عبارة الرد).
ERR_NAPI_CONS_PROTOTYPE_OBJECT
أضيف في الإصدار: v9.0.0. أزيل بدءًا من الإصدار: v.10.0.0.
استُعمِل بوساطة N-API
عندما لا يكون Constructor.prototype
كائنًا.
ERR_OUTOFMEMORY
أضيف في الإصدار: v9.0.0. أزيل بدءًا من الإصدار: v.10.0.0.
استُعمِل بشكل عام لتحديد العملية التي سبَّبت حالة نفاد الذاكرة.
ERR_PARSE_HISTORY_DATA
أضيف في الإصدار: v9.0.0. أزيل بدءًا من الإصدار: v.10.0.0.
استُعمِل عندما لا تكون الوحدة repl
قادرةً على تحليل البيانات من ملف تاريخ REPL.
ERR_STREAM_READ_NOT_IMPLEMENTED
أضيف في الإصدار: v9.0.0. أزيل بدءًا من الإصدار: v.10.0.0.
استُعمِل عند إجراء محاولة لاستعمال مجرًى قابل للقراءة لم ينفِّذ التابع readable._read()
.
ERR_TLS_RENEGOTIATION_FAILED
أضيف في الإصدار: v9.0.0. أزيل بدءًا من الإصدار: v.10.0.0.
استُعمِل عند فشل طلب إعادة التفاوض TLS بطريقة غير محددة.
ERR_UNKNOWN_BUILTIN_MODULE
أضيف في الإصدار: v9.0.0. أزيل بدءًا من الإصدار: v.10.0.0.
استُعمِل لتحديد نوع معين من أخطاء Node.js الداخلية الذي لا يجب أن يُطلَق عادةً من طرف شيفرة المستخدم. كانت نسخ هذا الخطأ تشير إلى حدوث خطأ داخلي (internal bug) ضمن ملف Node.js التنفيذي نفسه.
ERR_VALUE_OUT_OF_RANGE
أضيف في الإصدار: v9.0.0. أزيل بدءًا من الإصدار: v.10.0.0.
استُعمِل عندما تكون القيمة المعطاة خارج المجال المسموح.
ERR_ZLIB_BINDING_CLOSED
أضيف في الإصدار: v9.0.0. أزيل بدءًا من الإصدار: v.10.0.0.
استُعمِل عندما تُجرَى محاولة لاستعمال الكائن zlib
بعد أن يكون قد أغلق حينها.
رموز أخطاء أخرى
الأخطاء التالية لم تعد تُطلَق، ولكنها لا تزال موجودةً في الإصدار الرئيسي (master) بين الإصدارات.
ERR_FS_WATCHER_ALREADY_STARTED
أجريت محاولة لبدء مراقبٍ يعاد من قِبَل fs.watch()
كان قد بُدِء قبل ذلك الحين.
ERR_FS_WATCHER_NOT_STARTED
أجريت محاولة لتنفيذ عملية على مراقب يعاد من قبل fs.watch()
لم يكن قد بُدِء حينها.
ERR_HTTP2_ALREADY_SHUTDOWN
أجريت عدة محاولات لإيقاف جلسة HTTP/2.
ERR_HTTP2_ERROR
حدث خطأ HTTP/2 غير محددٍ.
ERR_INVALID_REPL_HISTORY
استُعمِل في الوحدة repl
في حال استخدم ملف التأريخ القديم وحصل خطأ آنذاك أثناء محاولة قراءته وتحليله.
ERR_MISSING_DYNAMIC_INSTANTIATE_HOOK
استُعمِل عندما يحدد خطاف محمِّل الوحدة ES6
القيمة format: 'dynamic'
ولكن لا يوفر الخطاف dynamicInstantiate
.
ERR_STREAM_HAS_STRINGDECODER
استُعمِل لمنع حدوث عملية إجهاض عندما يُضبَط مفكك ترميز سلسلة نصية على المقبس.
const Socket = require('net').Socket;
const instance = new Socket();
instance.setEncoding('utf8');
ERR_STRING_TOO_LARGE
استُعمِل عند إجراء محاولة لإنشاء سلسلة نصية أكبر من الحجم الأقصى المسموح به.
مصادر
- صفحة Errors في توثيق Node.js الرسمي.