الفرق بين المراجعتين ل"Node.js/errors"

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
(مراجعة وتدقيق.)
ط (استبدال النص - '\[\[تصنيف:(.*)\]\]' ب'{{SUBPAGENAME}}')
 
سطر 809: سطر 809:
 
== مصادر ==
 
== مصادر ==
 
* [https://nodejs.org/dist/latest-v10.x/docs/api/errors.html صفحة Errors في توثيق Node.js الرسمي.]
 
* [https://nodejs.org/dist/latest-v10.x/docs/api/errors.html صفحة Errors في توثيق Node.js الرسمي.]
[[تصنيف: Node.js]]
+
[[تصنيف: Node.js|{{SUBPAGENAME}}]]

المراجعة الحالية بتاريخ 11:19، 23 أكتوبر 2018

ستواجه التطبيقات التي تعمل في 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)‎

تنشئ هذه الدالة كانئًا جديدًا من النوع Error‎ وتضبط قيمة الخاصية Error.message‎ إلى الرسالة النصية المعطاة. إن مُرِّر كائن إلى الوسيط message، فستُولَّد الرسالة النصية للخطأ عبر استدعاء message.toString()‎. ستُمثِّل الخاصية error.stack‎ موقعًا محددًا في الشيفرة حيث استدعي new Error()‎. تعتمد تعقبات المكدس (stack traces) على واجهة V8 البرمجية لتعقب المكدس. تتوسَّع تعقبات المكدس من أجل إمّا بداية تنفيذ الشيفرة المتزامنة، أو عدد الإطارات المعطى عبر الخاصية Error.stackTraceLimit‎ مهما كان صغيرًا.

Error.captureStackTrace(targetObject[, constructorOpt])‎

ينشئ هذا التابع الخاصية .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‎

تحدِّد الخاصية Error.stackTraceLimit‎ عدد إطارات المكدس (stack frames) التي يجمعها متعقب المكدس (سواءً وُلِّدَت عبر new Error().stack‎ أو Error.captureStackTrace(obj)‎).

القيمة الافتراضية لهذه الخاصية هي 10، ولكن يمكن ضبطها إلى أية قيمة عددية صالحة في JavaScript. ستُؤثِّر التغييرات على أية تعقبات للمكدس التُقطَت بعد تغيير قيمة هذه الخاصية.

إن ضبطت قيمة هذه الخاصية إلى قيمة غير عددية أو قيمة سالبة، فلن تلتقط تعقبات المكدس أية إطارات.

error.code‎

الخاصية error.code‎ هي سلسلة نصية تمثل تسميةً (label) تعرِّف نوع الخطأ. ألقِ نظرة على القسم «رموز الخطأ في Node.js» للمزيد من التفاصيل حول رموز محدَّدة.

error.message‎

الخاصية error.message‎ هي سلسلة نصية تصف الخطأ، وهي نفسها القيمة التي ضُبطَت عند استدعاء الدالة new Error(message)‎. ستظهر قيمة الوسيط message‎ المُمرَّر إلى الباني في السطر الأول من تعقبات المكدس للكائن Error‎. على أي حال، تغيير قيمة هذه الخاصية بعد إنشاء الكائن Error‎ قد لا يؤدي إلى تغيير القيمة الموجودة في السطر الأول من تعقبات المكدس (أي عما كانت عليه عند قراءة error.stack‎ مثلًا قبل تغيير هذه الخاصية).

const err = new Error('The message');
console.error(err.message);
// The message :سيُطبَع

error.stack‎

الخاصية 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‎

الخاصية error.code‎ هي سلسلة نصية تمثِّل رمز الخطأ والذي يبدأ عادة بالحرف E‎ ثم تليه سلسلةٌ من الحروف الكبيرة.

error.errno

الخاصية error.errno هي عدد أو سلسلة نصية. إن كانت عددًا، فهي قيمة سالبة تتوافق مع رمز الخطأ المعرَّف في معالجة أخطاء المكتبة libuv. ألقِ نظرة على ملف الترويسة uv-errno.h‎ (موجود في deps/uv/include/uv-errno.h‎ في شجرة Node.js المصدرية) للمزيد من التفاصيل. أمَّا في حال كانت هذه الخاصية سلسلةً نصيةً، فستكون مماثلة تمامًا للخاصية error.code‎.

error.syscall

الخاصية error.syscall هي سلسلة نصية تصف استدعاء النظام (syscall) الذي فشل.

error.path

عندما توجد هذه الخاصية (كما في الوحدة fs‎ أو الوحدة chid_process‎)، فستكون سلسلة نصية تحوي اسم المسار غير الصالح الذي له صلة بالخطأ الحاصل.

error.address

عندما توجد هذه الخاصية (كما في الوحدة net أو الوحدة dgram)، فستكون سلسلة نصية تصف العنوان الذي فشل الاتصال به.

error.port

عندما توجد هذه الخاصية (كما في الوحدة 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‎

استدعي التابع crypto.timingSafeEqual()‎ مع طول مختلف للوسائط 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‎ الذي استدعي كرد نداء عبر util.callbackify()‎ مع قيمة خطأ (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‎‎.

أوجد هذا الخطأ لمنع استبدال رد نداءٍ مسجلٍ من طرف وحدة أخرى عن طريق الخطأ.

‎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

استُعمِل عند إجراء محاولة لإنشاء سلسلة نصية أكبر من الحجم الأقصى المسموح به.

مصادر