Skip to content

واجهات برمجة التطبيقات المُهملة

قد تُهمل واجهات برمجة تطبيقات Node.js لأي من الأسباب التالية:

  • استخدام واجهة برمجة التطبيقات غير آمن.
  • تتوفر واجهة برمجة تطبيقات بديلة محسّنة.
  • من المتوقع إجراء تغييرات جوهرية على واجهة برمجة التطبيقات في إصدار رئيسي مستقبلي.

يستخدم Node.js أربعة أنواع من الإهمال:

  • وثائق فقط
  • تطبيق (رمز خارج node_modules فقط)
  • وقت التشغيل (جميع الرموز)
  • نهاية العمر الافتراضي

الإهمال الخاص بالوثائق فقط هو ما يُعبّر عنه فقط ضمن وثائق واجهة برمجة تطبيقات Node.js. هذه لا تُحدث أي آثار جانبية أثناء تشغيل Node.js. بعض حالات الإهمال الخاصة بالوثائق فقط تُنشط تحذيرًا أثناء وقت التشغيل عند تشغيلها باستخدام علم --pending-deprecation (أو بديله، متغير البيئة NODE_PENDING_DEPRECATION=1)، بشكل مشابه لإهمال وقت التشغيل أدناه. يتم تمييز حالات الإهمال الخاصة بالوثائق فقط التي تدعم هذا العلم بشكل صريح على أنها كذلك في قائمة واجهات برمجة التطبيقات المُهملة.

سيؤدي إهمال التطبيق لرمز خارج node_modules فقط، بشكل افتراضي، إلى إنشاء تحذير عملية سيتم طباعته إلى stderr في المرة الأولى التي يتم فيها استخدام واجهة برمجة التطبيقات المُهملة في الرمز الذي لم يتم تحميله من node_modules. عند استخدام علم سطر الأوامر --throw-deprecation، سيؤدي إهمال وقت التشغيل إلى إلقاء خطأ. عند استخدام --pending-deprecation، سيتم أيضًا إصدار تحذيرات للرمز المُحمّل من node_modules.

يشبه إهمال وقت التشغيل لجميع الرموز إهمال وقت التشغيل لرمز خارج node_modules، إلا أنه يُصدر أيضًا تحذيرًا للرمز المُحمّل من node_modules.

يُستخدم إهمال نهاية العمر الافتراضي عندما يتم أو سيتم قريبًا إزالة الوظيفة من Node.js.

إلغاء الإهمال

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

قائمة واجهات برمجة التطبيقات المُهملة

DEP0001: http.OutgoingMessage.prototype.flush

[التاريخ]

الإصدارالتغييرات
v14.0.0نهاية العمر الافتراضي.
v6.12.0, v4.8.6تم تعيين رمز إهمال.
v1.6.0إهمال وقت التشغيل.

النوع: نهاية العمر الافتراضي

تم إزالة OutgoingMessage.prototype.flush(). استخدم OutgoingMessage.prototype.flushHeaders() بدلاً من ذلك.

[History]

الإصدارالتغييرات
v8.0.0نهاية العمر الافتراضي.
v6.12.0تم تعيين رمز الإهمال.
v5.0.0إهمال وقت التشغيل.

النوع: نهاية العمر الافتراضي

وحدة _linklist مُهملة. يرجى استخدام بديل من مستخدمي النظام.

DEP0003: _writableState.buffer

[History]

الإصدارالتغييرات
v14.0.0نهاية العمر الافتراضي.
v6.12.0, v4.8.6تم تعيين رمز الإهمال.
v0.11.15إهمال وقت التشغيل.

النوع: نهاية العمر الافتراضي

تم إزالة _writableState.buffer. استخدم _writableState.getBuffer() بدلاً من ذلك.

DEP0004: CryptoStream.prototype.readyState

[History]

الإصدارالتغييرات
v10.0.0نهاية العمر الافتراضي.
v6.12.0, v4.8.6تم تعيين رمز الإهمال.
v0.4.0إهمال الوثائق فقط.

النوع: نهاية العمر الافتراضي

تم إزالة خاصية CryptoStream.prototype.readyState.

DEP0005: مُنشئ Buffer()

[History]

الإصدارالتغييرات
v10.0.0إهمال وقت التشغيل.
v6.12.0تم تعيين رمز الإهمال.
v6.0.0إهمال الوثائق فقط.

النوع: تطبيق (رمز خارج node_modules فقط)

دالة Buffer() ومُنشئ new Buffer() مُهملان بسبب مشاكل في سهولة استخدام واجهة برمجة التطبيقات التي قد تؤدي إلى مشاكل أمنية عرضية.

كبديل، استخدم إحدى طرق إنشاء كائنات Buffer التالية:

بدون --pending-deprecation، تحدث تحذيرات وقت التشغيل فقط للرمز غير الموجود في node_modules. وهذا يعني أنه لن تكون هناك تحذيرات إهمال لاستخدام Buffer() في التبعيات. مع --pending-deprecation، ينتج تحذير وقت تشغيل بغض النظر عن مكان استخدام Buffer().

DEP0006: child_process options.customFds

[History]

الإصدارالتغييرات
v12.0.0نهاية العمر الافتراضي.
v6.12.0, v4.8.6تم تعيين رمز الإهمال.
v0.11.14إهمال وقت التشغيل.
v0.5.10إهمال في الوثائق فقط.

النوع: نهاية العمر الافتراضي

داخل طرق spawn() و fork() و exec() في وحدة child_process، أصبح خيار options.customFds قديمًا. يجب استخدام خيار options.stdio بدلاً منه.

DEP0007: استبدال cluster worker.suicide بـ worker.exitedAfterDisconnect

[History]

الإصدارالتغييرات
v9.0.0نهاية العمر الافتراضي.
v7.0.0إهمال وقت التشغيل.
v6.12.0تم تعيين رمز الإهمال.
v6.0.0إهمال في الوثائق فقط.

النوع: نهاية العمر الافتراضي

في إصدار سابق من Node.js cluster، تمت إضافة خاصية منطقية باسم suicide إلى كائن Worker. كان الغرض من هذه الخاصية هو توفير مؤشر لكيفية ولماذا خرجت مثيل Worker. في Node.js 6.0.0، تم إهمال الخاصية القديمة واستبدالها بخاصية جديدة worker.exitedAfterDisconnect. لم يصف اسم الخاصية القديمة الدلالات الفعلية بدقة وكان مليئًا بالعواطف بشكل غير ضروري.

DEP0008: require('node:constants')

[History]

الإصدارالتغييرات
v6.12.0تم تعيين رمز الإهمال.
v6.3.0إهمال في الوثائق فقط.

النوع: إهمال في الوثائق فقط

وحدة node:constants قديمة. عند طلب الوصول إلى الثوابت ذات الصلة بوحدات Node.js المضمنة المحددة، يجب على المطورين الرجوع بدلاً من ذلك إلى خاصية constants المعروضة بواسطة الوحدة ذات الصلة. على سبيل المثال، require('node:fs').constants و require('node:os').constants.

DEP0009: crypto.pbkdf2 بدون digest

[History]

الإصدارالتغييرات
v14.0.0نهاية العمر الافتراضي (لـ digest === null).
v11.0.0إهمال وقت التشغيل (لـ digest === null).
v8.0.0نهاية العمر الافتراضي (لـ digest === undefined).
v6.12.0تم تعيين رمز الإهمال.
v6.0.0إهمال وقت التشغيل (لـ digest === undefined).

النوع: نهاية العمر الافتراضي

تم إهمال استخدام واجهة برمجة التطبيقات crypto.pbkdf2() بدون تحديد مُلخص في Node.js 6.0 لأن الطريقة كانت تستخدم افتراضيًا مُلخص 'SHA1' غير الموصى به. في السابق، تم طباعة تحذير الإهمال. بدءًا من Node.js 8.0.0، سيؤدي استدعاء crypto.pbkdf2() أو crypto.pbkdf2Sync() مع تعيين digest إلى undefined إلى إرسال TypeError.

بدءًا من Node.js v11.0.0، سيؤدي استدعاء هاتين الوظيفتين مع تعيين digest إلى null إلى طباعة تحذير إهمال لمواءمة السلوك عندما يكون digest هو undefined.

ومع ذلك، الآن، فإن تمرير undefined أو null سيؤدي إلى إرسال TypeError.

DEP0010: crypto.createCredentials

[History]

الإصدارالتغييرات
v11.0.0نهاية العمر الافتراضي.
v6.12.0, v4.8.6تم تعيين رمز الإهمال.
v0.11.13إهمال وقت التشغيل.

النوع: نهاية العمر الافتراضي

تم إزالة واجهة برمجة التطبيقات crypto.createCredentials(). يرجى استخدام tls.createSecureContext() بدلاً من ذلك.

DEP0011: crypto.Credentials

[History]

الإصدارالتغييرات
v11.0.0نهاية العمر الافتراضي.
v6.12.0, v4.8.6تم تعيين رمز الإهمال.
v0.11.13إهمال وقت التشغيل.

النوع: نهاية العمر الافتراضي

تم إزالة فئة crypto.Credentials. يرجى استخدام tls.SecureContext بدلاً من ذلك.

DEP0012: Domain.dispose

[History]

الإصدارالتغييرات
v9.0.0نهاية العمر الافتراضي.
v6.12.0, v4.8.6تم تعيين رمز الإهمال.
v0.11.7إهمال وقت التشغيل.

النوع: نهاية العمر الافتراضي

تم إزالة Domain.dispose(). استعد من إجراءات إدخال/إخراج فاشلة بشكل صريح عبر معالجات أحداث الخطأ المُعيّنة في المجال بدلاً من ذلك.

DEP0013: دالة fs غير متزامنة بدون استدعاء للرجوع

[History]

الإصدارالتغييرات
v10.0.0نهاية العمر الافتراضي.
v7.0.0إهمال وقت التشغيل.

النوع: نهاية العمر الافتراضي

يؤدي استدعاء دالة غير متزامنة بدون استدعاء للرجوع إلى إخراج TypeError في Node.js 10.0.0 وما بعده. انظر https://github.com/nodejs/node/pull/12562.

DEP0014: واجهة سلسلة تراثية fs.read

[History]

الإصدارالتغييرات
v8.0.0نهاية العمر الافتراضي.
v6.0.0إهمال وقت التشغيل.
v6.12.0, v4.8.6تم تعيين رمز الإهمال.
v0.1.96إهمال في الوثائق فقط.

النوع: نهاية العمر الافتراضي

تم إهمال واجهة سلسلة تراثية fs.read() [/api/fs#fsreadfd-buffer-offset-length-position-callback]. استخدم واجهة برمجة التطبيقات Buffer كما هو مذكور في الوثائق بدلاً من ذلك.

DEP0015: واجهة سلسلة تراثية fs.readSync

[History]

الإصدارالتغييرات
v8.0.0نهاية العمر الافتراضي.
v6.0.0إهمال وقت التشغيل.
v6.12.0, v4.8.6تم تعيين رمز الإهمال.
v0.1.96إهمال في الوثائق فقط.

النوع: نهاية العمر الافتراضي

تم إهمال واجهة سلسلة تراثية fs.readSync() [/api/fs#fsreadsyncfd-buffer-offset-length-position]. استخدم واجهة برمجة التطبيقات Buffer كما هو مذكور في الوثائق بدلاً من ذلك.

DEP0016: GLOBAL/root

[History]

الإصدارالتغييرات
v14.0.0نهاية العمر الافتراضي.
v6.12.0تم تعيين رمز الإهمال.
v6.0.0إهمال وقت التشغيل.

النوع: نهاية العمر الافتراضي

تم إهمال مُرادفات GLOBAL و root لخاصية global في Node.js 6.0.0 وتم إزالتهما منذ ذلك الحين.

DEP0017: Intl.v8BreakIterator

[History]

الإصدارالتغييرات
v9.0.0نهاية العمر الافتراضي.
v7.0.0إهمال وقت التشغيل.

النوع: نهاية العمر الافتراضي

كان Intl.v8BreakIterator امتدادًا غير قياسي وتم إزالته. انظر Intl.Segmenter.

DEP0018: رفض الوعود غير المُعالجة

[History]

الإصدارالتغييرات
v15.0.0نهاية العمر الافتراضي.
v7.0.0إهمال وقت التشغيل.

النوع: نهاية العمر الافتراضي

تم إهمال رفض الوعود غير المُعالجة. بشكل افتراضي، يؤدي رفض الوعود التي لم يتم التعامل معها إلى إنهاء عملية Node.js برمز خروج غير صفري. لتغيير طريقة تعامل Node.js مع الرفوض غير المُعالجة، استخدم خيار سطر الأوامر --unhandled-rejections.

DEP0019: require('.') تم حله خارج الدليل

[History]

الإصدارالتغييرات
v12.0.0تمت إزالة الوظيفة.
v6.12.0, v4.8.6تم تعيين رمز الإهمال.
v1.8.1إهمال وقت التشغيل.

النوع: نهاية العمر الافتراضي

في بعض الحالات، يمكن أن يحل require('.') خارج دليل الحزمة. تم إزالة هذا السلوك.

DEP0020: Server.connections

[History]

الإصدارالتغييرات
v15.0.0تمت إزالة Server.connections.
v6.12.0, v4.8.6تم تعيين رمز الإهمال.
v0.9.7إهمال وقت التشغيل.

النوع: نهاية العمر الافتراضي

تم إهمال خاصية Server.connections في Node.js v0.9.7 وتم إزالته. يرجى استخدام طريقة Server.getConnections() بدلاً من ذلك.

DEP0021: Server.listenFD

[History]

الإصدارالتغييرات
v12.0.0نهاية العمر الافتراضي.
v6.12.0, v4.8.6تم تعيين رمز الإهمال.
v0.7.12إهمال وقت التشغيل.

النوع: نهاية العمر الافتراضي

تم إهمال طريقة Server.listenFD() وإزالتها. يرجى استخدام Server.listen({fd: \<number\>}) بدلاً من ذلك.

DEP0022: os.tmpDir()

[History]

الإصدارالتغييرات
v14.0.0نهاية عمر الخدمة.
v7.0.0إهمال وقت التشغيل.

النوع: نهاية عمر الخدمة

تم إهمال واجهة برمجة التطبيقات os.tmpDir() في Node.js 7.0.0 وتم إزالته منذ ذلك الحين. يرجى استخدام os.tmpdir() بدلاً من ذلك.

DEP0023: os.getNetworkInterfaces()

[History]

الإصدارالتغييرات
v12.0.0نهاية عمر الخدمة.
v6.12.0, v4.8.6تم تعيين رمز إهمال.
v0.6.0إهمال وقت التشغيل.

النوع: نهاية عمر الخدمة

تم إهمال أسلوب os.getNetworkInterfaces(). يرجى استخدام أسلوب os.networkInterfaces() بدلاً من ذلك.

DEP0024: REPLServer.prototype.convertToContext()

[History]

الإصدارالتغييرات
v9.0.0نهاية عمر الخدمة.
v7.0.0إهمال وقت التشغيل.

النوع: نهاية عمر الخدمة

تمت إزالة واجهة برمجة التطبيقات REPLServer.prototype.convertToContext().

DEP0025: require('node:sys')

[History]

الإصدارالتغييرات
v6.12.0, v4.8.6تم تعيين رمز إهمال.
v1.0.0إهمال وقت التشغيل.

النوع: وقت التشغيل

تم إهمال وحدة node:sys. يرجى استخدام وحدة util بدلاً من ذلك.

DEP0026: util.print()

[History]

الإصدارالتغييرات
v12.0.0نهاية عمر الخدمة.
v6.12.0, v4.8.6تم تعيين رمز إهمال.
v0.11.3إهمال وقت التشغيل.

النوع: نهاية عمر الخدمة

تمت إزالة util.print(). يرجى استخدام console.log() بدلاً من ذلك.

DEP0027: util.puts()

[History]

الإصدارالتغييرات
v12.0.0نهاية عمر الخدمة.
v6.12.0, v4.8.6تم تعيين رمز إهمال.
v0.11.3إهمال وقت التشغيل.

النوع: نهاية عمر الخدمة

تمت إزالة util.puts(). يرجى استخدام console.log() بدلاً من ذلك.

DEP0028: util.debug()

[History]

الإصدارالتغييرات
v12.0.0نهاية عمر الخدمة.
v6.12.0, v4.8.6تم تعيين رمز إهمال.
v0.11.3إهمال وقت التشغيل.

النوع: نهاية عمر الخدمة

تمت إزالة util.debug(). يرجى استخدام console.error() بدلاً من ذلك.

DEP0029: util.error()

[History]

الإصدارالتغييرات
v12.0.0نهاية العمر الافتراضي.
v6.12.0, v4.8.6تم تعيين رمز الإهمال.
v0.11.3إهمال وقت التشغيل.

النوع: نهاية العمر الافتراضي

تم إزالة util.error(). يرجى استخدام console.error() بدلاً من ذلك.

DEP0030: SlowBuffer

[History]

الإصدارالتغييرات
v6.12.0تم تعيين رمز الإهمال.
v6.0.0إهمال في الوثائق فقط.

النوع: وثائق فقط

تم إهمال فئة SlowBuffer. يرجى استخدام Buffer.allocUnsafeSlow(size) بدلاً من ذلك.

DEP0031: ecdh.setPublicKey()

[History]

الإصدارالتغييرات
v6.12.0تم تعيين رمز الإهمال.
v5.2.0إهمال في الوثائق فقط.

النوع: وثائق فقط

تم الآن إهمال طريقة ecdh.setPublicKey() لأن تضمينها في واجهة برمجة التطبيقات ليس مفيدًا.

DEP0032: وحدة node:domain

[History]

الإصدارالتغييرات
v6.12.0, v4.8.6تم تعيين رمز الإهمال.
v1.4.2إهمال في الوثائق فقط.

النوع: وثائق فقط

تم إهمال وحدة domain ويجب عدم استخدامها.

DEP0033: EventEmitter.listenerCount()

[History]

الإصدارالتغييرات
v6.12.0, v4.8.6تم تعيين رمز الإهمال.
v3.2.0إهمال في الوثائق فقط.

النوع: وثائق فقط

تم إهمال واجهة برمجة التطبيقات events.listenerCount(emitter, eventName). يرجى استخدام emitter.listenerCount(eventName) بدلاً من ذلك.

DEP0034: fs.exists(path, callback)

[History]

الإصدارالتغييرات
v6.12.0, v4.8.6تم تعيين رمز الإهمال.
v1.0.0إهمال في الوثائق فقط.

النوع: وثائق فقط

تم إهمال واجهة برمجة التطبيقات fs.exists(path, callback). يرجى استخدام fs.stat() أو fs.access() بدلاً من ذلك.

DEP0035: fs.lchmod(path, mode, callback)

[History]

الإصدارالتغييرات
v6.12.0, v4.8.6تم تعيين رمز الإهمال.
v0.4.7إهمال وثائقي فقط.

النوع: إهمال وثائقي فقط

تم إهمال واجهة برمجة التطبيقات fs.lchmod(path, mode, callback).

DEP0036: fs.lchmodSync(path, mode)

[History]

الإصدارالتغييرات
v6.12.0, v4.8.6تم تعيين رمز الإهمال.
v0.4.7إهمال وثائقي فقط.

النوع: إهمال وثائقي فقط

تم إهمال واجهة برمجة التطبيقات fs.lchmodSync(path, mode).

DEP0037: fs.lchown(path, uid, gid, callback)

[History]

الإصدارالتغييرات
v10.6.0تم إلغاء الإهمال.
v6.12.0, v4.8.6تم تعيين رمز الإهمال.
v0.4.7إهمال وثائقي فقط.

النوع: تم إلغاء الإهمال

تم إهمال واجهة برمجة التطبيقات fs.lchown(path, uid, gid, callback). تم إلغاء الإهمال لأن واجهات برمجة التطبيقات الداعمة المطلوبة تمت إضافتها في libuv.

DEP0038: fs.lchownSync(path, uid, gid)

[History]

الإصدارالتغييرات
v10.6.0تم إلغاء الإهمال.
v6.12.0, v4.8.6تم تعيين رمز الإهمال.
v0.4.7إهمال وثائقي فقط.

النوع: تم إلغاء الإهمال

تم إهمال واجهة برمجة التطبيقات fs.lchownSync(path, uid, gid). تم إلغاء الإهمال لأن واجهات برمجة التطبيقات الداعمة المطلوبة تمت إضافتها في libuv.

DEP0039: require.extensions

[History]

الإصدارالتغييرات
v6.12.0, v4.8.6تم تعيين رمز الإهمال.
v0.10.6إهمال وثائقي فقط.

النوع: إهمال وثائقي فقط

تم إهمال خاصية require.extensions.

DEP0040: وحدة node:punycode

[History]

الإصدارالتغييرات
v21.0.0إهمال وقت التشغيل.
v16.6.0تمت إضافة دعم لـ --pending-deprecation.
v7.0.0إهمال وثائقي فقط.

النوع: وقت التشغيل

تم إهمال وحدة punycode. يرجى استخدام بديل من جانب المستخدم بدلاً من ذلك.

DEP0041: متغير البيئة NODE_REPL_HISTORY_FILE

[السجل]

الإصدارالتغييرات
v10.0.0نهاية العمر الافتراضي.
v6.12.0, v4.8.6تم تعيين رمز الإهمال.
v3.0.0إهمال في الوثائق فقط.

النوع: نهاية العمر الافتراضي

تم إزالة متغير البيئة NODE_REPL_HISTORY_FILE. يرجى استخدام NODE_REPL_HISTORY بدلاً من ذلك.

DEP0042: tls.CryptoStream

[السجل]

الإصدارالتغييرات
v10.0.0نهاية العمر الافتراضي.
v6.12.0, v4.8.6تم تعيين رمز الإهمال.
v0.11.3إهمال في الوثائق فقط.

النوع: نهاية العمر الافتراضي

تم إزالة فئة tls.CryptoStream. يرجى استخدام tls.TLSSocket بدلاً من ذلك.

DEP0043: tls.SecurePair

[السجل]

الإصدارالتغييرات
v8.0.0إهمال وقت التشغيل.
v6.12.0تم تعيين رمز الإهمال.
v6.0.0إهمال في الوثائق فقط.
v0.11.15تم إلغاء الإهمال.
v0.11.3إهمال وقت التشغيل.

النوع: وثائق فقط

فئة tls.SecurePair قديمة. يرجى استخدام tls.TLSSocket بدلاً من ذلك.

DEP0044: util.isArray()

[السجل]

الإصدارالتغييرات
v22.0.0إهمال وقت التشغيل.
v6.12.0, v4.8.6تم تعيين رمز الإهمال.
v4.0.0, v3.3.1إهمال في الوثائق فقط.

النوع: وقت التشغيل

واجهة برمجة التطبيقات util.isArray() قديمة. يرجى استخدام Array.isArray() بدلاً من ذلك.

DEP0045: util.isBoolean()

[السجل]

الإصدارالتغييرات
v23.0.0إهمال نهاية العمر الافتراضي.
v22.0.0إهمال وقت التشغيل.
v6.12.0, v4.8.6تم تعيين رمز الإهمال.
v4.0.0, v3.3.1إهمال في الوثائق فقط.

النوع: نهاية العمر الافتراضي

تم إزالة واجهة برمجة التطبيقات util.isBoolean(). يرجى استخدام typeof arg === 'boolean' بدلاً من ذلك.

DEP0046: util.isBuffer()

[السجل]

الإصدارالتغييرات
v23.0.0إهمال نهاية العمر الافتراضي.
v22.0.0إهمال وقت التشغيل.
v6.12.0, v4.8.6تم تعيين رمز الإهمال.
v4.0.0, v3.3.1إهمال في الوثائق فقط.

النوع: نهاية العمر الافتراضي

تم إزالة واجهة برمجة التطبيقات util.isBuffer(). يرجى استخدام Buffer.isBuffer() بدلاً من ذلك.

DEP0047: util.isDate()

[History]

الإصدارالتغييرات
v23.0.0انتهاء عمر الإصدار.
v22.0.0انتهاء عمر التشغيل.
v6.12.0, v4.8.6تم تعيين رمز الإهمال.
v4.0.0, v3.3.1إهمال في الوثائق فقط.

النوع: انتهاء عمر الإصدار

تم إزالة واجهة برمجة التطبيقات util.isDate(). يرجى استخدام arg instanceof Date بدلاً من ذلك.

DEP0048: util.isError()

[History]

الإصدارالتغييرات
v23.0.0انتهاء عمر الإصدار.
v22.0.0انتهاء عمر التشغيل.
v6.12.0, v4.8.6تم تعيين رمز الإهمال.
v4.0.0, v3.3.1إهمال في الوثائق فقط.

النوع: انتهاء عمر الإصدار

تم إزالة واجهة برمجة التطبيقات util.isError(). يرجى استخدام Object.prototype.toString(arg) === '[object Error]' || arg instanceof Error بدلاً من ذلك.

DEP0049: util.isFunction()

[History]

الإصدارالتغييرات
v23.0.0انتهاء عمر الإصدار.
v22.0.0انتهاء عمر التشغيل.
v6.12.0, v4.8.6تم تعيين رمز الإهمال.
v4.0.0, v3.3.1إهمال في الوثائق فقط.

النوع: انتهاء عمر الإصدار

تم إزالة واجهة برمجة التطبيقات util.isFunction(). يرجى استخدام typeof arg === 'function' بدلاً من ذلك.

DEP0050: util.isNull()

[History]

الإصدارالتغييرات
v23.0.0انتهاء عمر الإصدار.
v22.0.0انتهاء عمر التشغيل.
v6.12.0, v4.8.6تم تعيين رمز الإهمال.
v4.0.0, v3.3.1إهمال في الوثائق فقط.

النوع: انتهاء عمر الإصدار

تم إزالة واجهة برمجة التطبيقات util.isNull(). يرجى استخدام arg === null بدلاً من ذلك.

DEP0051: util.isNullOrUndefined()

[History]

الإصدارالتغييرات
v23.0.0انتهاء عمر الإصدار.
v22.0.0انتهاء عمر التشغيل.
v6.12.0, v4.8.6تم تعيين رمز الإهمال.
v4.0.0, v3.3.1إهمال في الوثائق فقط.

النوع: انتهاء عمر الإصدار

تم إزالة واجهة برمجة التطبيقات util.isNullOrUndefined(). يرجى استخدام arg === null || arg === undefined بدلاً من ذلك.

DEP0052: util.isNumber()

[History]

الإصدارالتغييرات
v23.0.0انتهاء عمر الإصدار.
v22.0.0انتهاء الصلاحية وقت التشغيل.
v6.12.0, v4.8.6تم تعيين رمز انتهاء الصلاحية.
v4.0.0, v3.3.1انتهاء الصلاحية في الوثائق فقط.

النوع: انتهاء عمر الإصدار

تم إزالة واجهة برمجة التطبيقات util.isNumber(). يرجى استخدام typeof arg === 'number' بدلاً من ذلك.

DEP0053: util.isObject()

[History]

الإصدارالتغييرات
v23.0.0انتهاء عمر الإصدار.
v22.0.0انتهاء الصلاحية وقت التشغيل.
v6.12.0, v4.8.6تم تعيين رمز انتهاء الصلاحية.
v4.0.0, v3.3.1انتهاء الصلاحية في الوثائق فقط.

النوع: انتهاء عمر الإصدار

تم إزالة واجهة برمجة التطبيقات util.isObject(). يرجى استخدام arg && typeof arg === 'object' بدلاً من ذلك.

DEP0054: util.isPrimitive()

[History]

الإصدارالتغييرات
v23.0.0انتهاء عمر الإصدار.
v22.0.0انتهاء الصلاحية وقت التشغيل.
v6.12.0, v4.8.6تم تعيين رمز انتهاء الصلاحية.
v4.0.0, v3.3.1انتهاء الصلاحية في الوثائق فقط.

النوع: انتهاء عمر الإصدار

تم إزالة واجهة برمجة التطبيقات util.isPrimitive(). يرجى استخدام arg === null || (typeof arg !=='object' && typeof arg !== 'function') بدلاً من ذلك.

DEP0055: util.isRegExp()

[History]

الإصدارالتغييرات
v23.0.0انتهاء عمر الإصدار.
v22.0.0انتهاء الصلاحية وقت التشغيل.
v6.12.0, v4.8.6تم تعيين رمز انتهاء الصلاحية.
v4.0.0, v3.3.1انتهاء الصلاحية في الوثائق فقط.

النوع: انتهاء عمر الإصدار

تم إزالة واجهة برمجة التطبيقات util.isRegExp(). يرجى استخدام arg instanceof RegExp بدلاً من ذلك.

DEP0056: util.isString()

[History]

الإصدارالتغييرات
v23.0.0انتهاء عمر الإصدار.
v22.0.0انتهاء الصلاحية وقت التشغيل.
v6.12.0, v4.8.6تم تعيين رمز انتهاء الصلاحية.
v4.0.0, v3.3.1انتهاء الصلاحية في الوثائق فقط.

النوع: انتهاء عمر الإصدار

تم إزالة واجهة برمجة التطبيقات util.isString(). يرجى استخدام typeof arg === 'string' بدلاً من ذلك.

DEP0057: util.isSymbol()

[History]

الإصدارالتغييرات
v23.0.0إزالة من نهاية عمر الدعم.
v22.0.0إزالة من وقت التشغيل.
v6.12.0, v4.8.6تم تعيين رمز إزالة من الخدمة.
v4.0.0, v3.3.1إزالة من الوثائق فقط.

النوع: نهاية عمر الدعم

تم إزالة واجهة برمجة التطبيقات util.isSymbol(). يرجى استخدام typeof arg === 'symbol' بدلاً من ذلك.

DEP0058: util.isUndefined()

[History]

الإصدارالتغييرات
v23.0.0إزالة من نهاية عمر الدعم.
v22.0.0إزالة من وقت التشغيل.
v6.12.0, v4.8.6تم تعيين رمز إزالة من الخدمة.
v4.0.0, v3.3.1إزالة من الوثائق فقط.

النوع: نهاية عمر الدعم

تم إزالة واجهة برمجة التطبيقات util.isUndefined(). يرجى استخدام arg === undefined بدلاً من ذلك.

DEP0059: util.log()

[History]

الإصدارالتغييرات
v23.0.0إزالة من نهاية عمر الدعم.
v22.0.0إزالة من وقت التشغيل.
v6.12.0تم تعيين رمز إزالة من الخدمة.
v6.0.0إزالة من الوثائق فقط.

النوع: نهاية عمر الدعم

تم إزالة واجهة برمجة التطبيقات util.log() لأنها واجهة برمجة تطبيقات قديمة غير مدعومة تم عرضها على مستوى المستخدم عن طريق الخطأ. بدلاً من ذلك، ضع في اعتبارك البدائل التالية بناءً على احتياجاتك المحددة:

  • مكتبات تسجيل سجلات تابعة لجهات خارجية
  • استخدم console.log(new Date().toLocaleString(), message)

من خلال تبني أحد هذه البدائل، يمكنك الانتقال بعيدًا عن util.log() واختيار إستراتيجية تسجيل سجلات تتوافق مع متطلبات وتعقيد تطبيقك المحددين.

DEP0060: util._extend()

[History]

الإصدارالتغييرات
v22.0.0إزالة من وقت التشغيل.
v6.12.0تم تعيين رمز إزالة من الخدمة.
v6.0.0إزالة من الوثائق فقط.

النوع: وقت التشغيل

تم إزالة واجهة برمجة التطبيقات util._extend() لأنها واجهة برمجة تطبيقات قديمة غير مدعومة تم عرضها على مستوى المستخدم عن طريق الخطأ. يرجى استخدام target = Object.assign(target, source) بدلاً من ذلك.

DEP0061: fs.SyncWriteStream

[History]

الإصدارالتغييرات
v11.0.0نهاية العمر الافتراضي.
v8.0.0إهمال وقت التشغيل.
v7.0.0إهمال في الوثائق فقط.

النوع: نهاية العمر الافتراضي

لم تكن فئة fs.SyncWriteStream مُخصصة أبدًا لتكون واجهة برمجة تطبيقات متاحة للجمهور وقد تمت إزالتها. لا توجد واجهة برمجة تطبيقات بديلة متاحة. يرجى استخدام بديل من جانب المستخدم.

DEP0062: node --debug

[History]

الإصدارالتغييرات
v12.0.0نهاية العمر الافتراضي.
v8.0.0إهمال وقت التشغيل.

النوع: نهاية العمر الافتراضي

يقوم --debug بتنشيط واجهة مُصحح أخطاء V8 القديمة، والتي تمت إزالتها اعتبارًا من V8 5.8. وقد تم استبدالها بـ Inspector والذي يتم تنشيطه باستخدام --inspect بدلاً من ذلك.

DEP0063: ServerResponse.prototype.writeHeader()

[History]

الإصدارالتغييرات
v8.0.0إهمال في الوثائق فقط.

النوع: إهمال في الوثائق فقط

واجهة برمجة التطبيقات ServerResponse.prototype.writeHeader() في وحدة node:http قديمة. يرجى استخدام ServerResponse.prototype.writeHead() بدلاً من ذلك.

لم يتم توثيق طريقة ServerResponse.prototype.writeHeader() أبدًا كواجهة برمجة تطبيقات مدعومة رسميًا.

DEP0064: tls.createSecurePair()

[History]

الإصدارالتغييرات
v8.0.0إهمال وقت التشغيل.
v6.12.0تم تعيين رمز إهمال.
v6.0.0إهمال في الوثائق فقط.
v0.11.15تم إلغاء الإهمال.
v0.11.3إهمال وقت التشغيل.

النوع: وقت التشغيل

تم إهمال واجهة برمجة التطبيقات tls.createSecurePair() في الوثائق في Node.js 0.11.3. يجب على المستخدمين استخدام tls.Socket بدلاً من ذلك.

DEP0065: repl.REPL_MODE_MAGIC و NODE_REPL_MODE=magic

[History]

الإصدارالتغييرات
v10.0.0نهاية العمر الافتراضي.
v8.0.0إهمال في الوثائق فقط.

النوع: نهاية العمر الافتراضي

تم إزالة ثابت REPL_MODE_MAGIC لوحدة node:repl، المستخدم لخيار replMode. كان سلوكه متطابقًا وظيفيًا مع سلوك REPL_MODE_SLOPPY منذ Node.js 6.0.0، عندما تم استيراد V8 5.0. يرجى استخدام REPL_MODE_SLOPPY بدلاً من ذلك.

يتم استخدام متغير البيئة NODE_REPL_MODE لتعيين replMode الأساسي لجلسة node التفاعلية. تم أيضًا إزالة قيمته، magic. يرجى استخدام sloppy بدلاً من ذلك.

DEP0066: OutgoingMessage.prototype._headers, OutgoingMessage.prototype._headerNames

[History]

الإصدارالتغييرات
v12.0.0إهمال وقت التشغيل.
v8.0.0إهمال وثائق فقط.

النوع: وقت التشغيل

خصائص وحدة node:http OutgoingMessage.prototype._headers و OutgoingMessage.prototype._headerNames قديمة. استخدم إحدى الطرق العامة (مثل OutgoingMessage.prototype.getHeader(), OutgoingMessage.prototype.getHeaders(), OutgoingMessage.prototype.getHeaderNames(), OutgoingMessage.prototype.getRawHeaderNames(), OutgoingMessage.prototype.hasHeader(), OutgoingMessage.prototype.removeHeader(), OutgoingMessage.prototype.setHeader()) للعمل مع رؤوس الخرج.

لم يتم توثيق خصائص OutgoingMessage.prototype._headers و OutgoingMessage.prototype._headerNames أبدًا كخصائص مدعومة رسميًا.

DEP0067: OutgoingMessage.prototype._renderHeaders

[History]

الإصدارالتغييرات
v8.0.0إهمال وثائق فقط.

النوع: إهمال وثائق فقط

واجهة برمجة التطبيقات node:http OutgoingMessage.prototype._renderHeaders() قديمة.

لم يتم توثيق خاصية OutgoingMessage.prototype._renderHeaders أبدًا كواجهة برمجة تطبيقات مدعومة رسميًا.

DEP0068: node debug

[History]

الإصدارالتغييرات
v15.0.0تمت إزالة أمر node debug القديم.
v8.0.0إهمال وقت التشغيل.

النوع: نهاية العمر الافتراضي

node debug يتوافق مع مصحح الأخطاء القديم لسطر الأوامر والذي تم استبداله بمصحح أخطاء لسطر الأوامر يعتمد على V8-inspector متاح من خلال node inspect.

DEP0069: vm.runInDebugContext(string)

[History]

الإصدارالتغييرات
v10.0.0نهاية العمر الافتراضي.
v9.0.0إهمال وقت التشغيل.
v8.0.0إهمال وثائق فقط.

النوع: نهاية العمر الافتراضي

تم إزالة DebugContext في V8 وهي غير متوفرة في Node.js 10+.

كانت DebugContext واجهة برمجة تطبيقات تجريبية.

DEP0070: async_hooks.currentId()

[History]

الإصدارالتغييرات
v9.0.0نهاية العمر الافتراضي.
v8.2.0إهمال وقت التشغيل.

النوع: نهاية العمر الافتراضي

تم تغيير اسم async_hooks.currentId() إلى async_hooks.executionAsyncId() من أجل الوضوح.

تم إجراء هذا التغيير بينما كانت async_hooks واجهة برمجة تطبيقات تجريبية.

DEP0071: async_hooks.triggerId()

[History]

الإصدارالتغييرات
v9.0.0نهاية العمر الافتراضي.
v8.2.0إهمال وقت التشغيل.

النوع: نهاية العمر الافتراضي

تم إعادة تسمية async_hooks.triggerId() إلى async_hooks.triggerAsyncId() من أجل الوضوح.

تم إجراء هذا التغيير بينما كانت async_hooks واجهة برمجة تطبيقات تجريبية.

DEP0072: async_hooks.AsyncResource.triggerId()

[History]

الإصدارالتغييرات
v9.0.0نهاية العمر الافتراضي.
v8.2.0إهمال وقت التشغيل.

النوع: نهاية العمر الافتراضي

تم إعادة تسمية async_hooks.AsyncResource.triggerId() إلى async_hooks.AsyncResource.triggerAsyncId() من أجل الوضوح.

تم إجراء هذا التغيير بينما كانت async_hooks واجهة برمجة تطبيقات تجريبية.

DEP0073: العديد من الخصائص الداخلية لـ net.Server

[History]

الإصدارالتغييرات
v10.0.0نهاية العمر الافتراضي.
v9.0.0إهمال وقت التشغيل.

النوع: نهاية العمر الافتراضي

تم إهمال الوصول إلى العديد من الخصائص الداخلية غير الموثقة لـ net.Server instances ذات الأسماء غير المناسبة.

نظرًا لأن واجهة برمجة التطبيقات الأصلية لم تكن موثقة وليست مفيدة بشكل عام للرمز غير الداخلي، فلن يتم توفير واجهة برمجة تطبيقات بديلة.

DEP0074: REPLServer.bufferedCommand

[History]

الإصدارالتغييرات
v15.0.0نهاية العمر الافتراضي.
v9.0.0إهمال وقت التشغيل.

النوع: نهاية العمر الافتراضي

تم إهمال خاصية REPLServer.bufferedCommand لصالح REPLServer.clearBufferedCommand().

DEP0075: REPLServer.parseREPLKeyword()

[History]

الإصدارالتغييرات
v15.0.0نهاية العمر الافتراضي.
v9.0.0إهمال وقت التشغيل.

النوع: نهاية العمر الافتراضي

تم إزالة REPLServer.parseREPLKeyword() من رؤية المستخدم.

DEP0076: tls.parseCertString()

[History]

الإصدارالتغييرات
v18.0.0نهاية العمر الافتراضي.
v9.0.0إهمال وقت التشغيل.
v8.6.0إهمال وثائق فقط.

النوع: نهاية العمر الافتراضي

كانت tls.parseCertString() أداة مساعدة تحليل بسيطة تم نشرها عن طريق الخطأ. على الرغم من أنها كانت من المفترض أن تحلل سلاسل موضوع وناشر الشهادة، إلا أنها لم تعالج أسماء النطاقات المميزة النسبية متعددة القيم بشكل صحيح.

اقترحت الإصدارات السابقة من هذه الوثيقة استخدام querystring.parse() كبديل لـ tls.parseCertString(). ومع ذلك، فإن querystring.parse() لا تعالج أيضًا جميع مواضيع الشهادات بشكل صحيح ويجب عدم استخدامها.

DEP0077: Module._debug()

[History]

الإصدارالتغييرات
v9.0.0إهمال وقت التشغيل.

النوع: وقت التشغيل

Module._debug() قديم.

لم يتم توثيق دالة Module._debug() أبدًا كواجهة برمجة تطبيقات مدعومة رسميًا.

DEP0078: REPLServer.turnOffEditorMode()

[History]

الإصدارالتغييرات
v15.0.0نهاية العمر الافتراضي.
v9.0.0إهمال وقت التشغيل.

النوع: نهاية العمر الافتراضي

تم إزالة REPLServer.turnOffEditorMode() من وصول المستخدم.

DEP0079: دالة الفحص المخصصة على الكائنات عبر .inspect()

[History]

الإصدارالتغييرات
v11.0.0نهاية العمر الافتراضي.
v10.0.0إهمال وقت التشغيل.
v8.7.0إهمال الوثائق فقط.

النوع: نهاية العمر الافتراضي

إن استخدام خاصية تحمل اسم inspect على كائن لتحديد دالة فحص مخصصة لـ util.inspect() قديم. استخدم util.inspect.custom بدلاً من ذلك. من أجل التوافق مع الإصدارات السابقة من Node.js قبل الإصدار 6.4.0، يمكن تحديد كليهما.

DEP0080: path._makeLong()

[History]

الإصدارالتغييرات
v9.0.0إهمال الوثائق فقط.

النوع: إهمال الوثائق فقط

لم يكن من المفترض استخدام path._makeLong() الداخلي للاستخدام العام. ومع ذلك، وجدت وحدات المستخدمين أنها مفيدة. واجهة البرمجة التطبيقات الداخلية قديمة وتم استبدالها بطريقة عامة متطابقة وهي path.toNamespacedPath().

DEP0081: fs.truncate() باستخدام مُعرّف الملف

[History]

الإصدارالتغييرات
v9.0.0إهمال وقت التشغيل.

النوع: وقت التشغيل

fs.truncate() fs.truncateSync() باستخدام مُعرّف الملف قديم. يرجى استخدام fs.ftruncate() أو fs.ftruncateSync() للعمل مع مُعرّفات الملفات.

DEP0082: REPLServer.prototype.memory()

[History]

الإصدارالتغييرات
v15.0.0نهاية العمر الافتراضي.
v9.0.0إهمال وقت التشغيل.

النوع: نهاية العمر الافتراضي

REPLServer.prototype.memory() ضرورية فقط للآليات الداخلية لـ REPLServer نفسها. لا تستخدم هذه الدالة.

DEP0083: تعطيل ECDH عن طريق تعيين ecdhCurve إلى false

[السجل]

الإصدارالتغييرات
v10.0.0نهاية العمر الافتراضي.
v9.2.0إهمال وقت التشغيل.

النوع: نهاية العمر الافتراضي.

يمكن تعيين خيار ecdhCurve لـ tls.createSecureContext() و tls.TLSSocket إلى false لتعطيل ECDH بالكامل على الخادم فقط. تم إهمال هذا الوضع استعدادًا للهجرة إلى OpenSSL 1.1.0 والاتساق مع العميل، وهو الآن غير مدعوم. استخدم معامل ciphers بدلاً من ذلك.

DEP0084: اشتراط التبعيات الداخلية المضمّنة

[السجل]

الإصدارالتغييرات
v12.0.0تمت إزالة هذه الوظيفة.
v10.0.0إهمال وقت التشغيل.

النوع: نهاية العمر الافتراضي

منذ إصدارات Node.js 4.4.0 و 5.2.0، تمّ بشكل خاطئ عرض العديد من الوحدات المخصصة للاستخدام الداخلي فقط على رمز المستخدم من خلال require(). كانت هذه الوحدات:

  • v8/tools/codemap
  • v8/tools/consarray
  • v8/tools/csvparser
  • v8/tools/logreader
  • v8/tools/profile_view
  • v8/tools/profile
  • v8/tools/SourceMap
  • v8/tools/splaytree
  • v8/tools/tickprocessor-driver
  • v8/tools/tickprocessor
  • node-inspect/lib/_inspect (من 7.6.0)
  • node-inspect/lib/internal/inspect_client (من 7.6.0)
  • node-inspect/lib/internal/inspect_repl (من 7.6.0)

لا تحتوي وحدات v8/* على أي تصدير، وإذا لم يتم استيرادها بترتيب محدد، فإنها ستُلقي أخطاءً في الواقع. على هذا النحو، لا توجد حالات استخدام مشروعة تقريبًا لاستيرادها من خلال require().

من ناحية أخرى، يمكن تثبيت node-inspect محليًا من خلال مدير الحزم، حيث يتم نشره في سجل npm تحت نفس الاسم. لا يلزم تعديل مصدر التعليمات البرمجية إذا تم ذلك.

DEP0085: واجهة برمجة التطبيقات الحساسة لـ AsyncHooks

[السجل]

الإصدارالتغييرات
v10.0.0نهاية العمر الافتراضي.
v9.4.0, v8.10.0إهمال وقت التشغيل.

النوع: نهاية العمر الافتراضي

لم يتم توثيق واجهة برمجة التطبيقات الحساسة لـ AsyncHooks مطلقًا، وكان بها العديد من المشكلات الطفيفة. استخدم واجهة برمجة التطبيقات AsyncResource بدلاً من ذلك. انظر https://github.com/nodejs/node/issues/15572.

DEP0086: إزالة runInAsyncIdScope

[History]

الإصدارالتغييرات
v10.0.0نهاية العمر الافتراضي.
v9.4.0, v8.10.0إهمال وقت التشغيل.

النوع: نهاية العمر الافتراضي

لا يُصدر runInAsyncIdScope حدث 'before' أو 'after'، وبالتالي يمكن أن يتسبب في العديد من المشكلات. انظر https://github.com/nodejs/node/issues/14328.

DEP0089: require('node:assert')

[History]

الإصدارالتغييرات
v12.8.0تم إلغاء الإهمال.
v9.9.0, v8.13.0إهمال في الوثائق فقط.

النوع: تم إلغاء الإهمال

لم يكن يُوصى باستيراد assert مباشرةً لأن الدوال المعروضة تستخدم عمليات تحقق متساوية فضفاضة. تم إلغاء الإهمال لأن استخدام وحدة node:assert غير مُثبط، وقد تسبب الإهمال في ارتباك المطورين.

DEP0090: أطوال علامات مصادقة GCM غير صالحة

[History]

الإصدارالتغييرات
v11.0.0نهاية العمر الافتراضي.
v10.0.0إهمال وقت التشغيل.

النوع: نهاية العمر الافتراضي

كانت Node.js تدعم جميع أطوال علامات مصادقة GCM التي يقبلها OpenSSL عند استدعاء decipher.setAuthTag(). بدءًا من Node.js v11.0.0، يُسمح فقط بأطوال علامات المصادقة التي يبلغ طولها 128 و120 و112 و104 و96 و64 و32 بت. علامات المصادقة ذات الأطوال الأخرى غير صالحة وفقًا لـ NIST SP 800-38D.

DEP0091: crypto.DEFAULT_ENCODING

[History]

الإصدارالتغييرات
v20.0.0نهاية العمر الافتراضي.
v10.0.0إهمال وقت التشغيل.

النوع: نهاية العمر الافتراضي

كانت خاصية crypto.DEFAULT_ENCODING موجودة فقط للتوافق مع إصدارات Node.js السابقة للإصدارات 0.9.3 وتم إزالتها.

DEP0092: this الأعلى مستوى مرتبط بـ module.exports

[History]

الإصدارالتغييرات
v10.0.0إهمال في الوثائق فقط.

النوع: إهمال في الوثائق فقط

إن تعيين الخصائص لـ this الأعلى مستوى كبديل لـ module.exports أمر مُهمل. يجب على المطورين استخدام exports أو module.exports بدلاً من ذلك.

DEP0093: تم إلغاء استخدام crypto.fips وتم استبداله

[السجل]

الإصدارالتغييرات
v23.0.0إلغاء الاستخدام أثناء وقت التشغيل.
v10.0.0إلغاء الاستخدام في الوثائق فقط.

النوع: وقت التشغيل

تم إلغاء استخدام خاصية crypto.fips. يرجى استخدام crypto.setFips() و crypto.getFips() بدلاً من ذلك.

DEP0094: استخدام assert.fail() مع أكثر من وسيطة واحدة

[السجل]

الإصدارالتغييرات
v10.0.0إلغاء الاستخدام أثناء وقت التشغيل.

النوع: وقت التشغيل

تم إلغاء استخدام assert.fail() مع أكثر من وسيطة واحدة. استخدم assert.fail() مع وسيطة واحدة فقط أو استخدم طريقة وحدة node:assert مختلفة.

DEP0095: timers.enroll()

[السجل]

الإصدارالتغييرات
v10.0.0إلغاء الاستخدام أثناء وقت التشغيل.

النوع: وقت التشغيل

تم إلغاء استخدام timers.enroll(). يرجى استخدام setTimeout() أو setInterval() الموثّقين علنًا بدلاً من ذلك.

DEP0096: timers.unenroll()

[السجل]

الإصدارالتغييرات
v10.0.0إلغاء الاستخدام أثناء وقت التشغيل.

النوع: وقت التشغيل

تم إلغاء استخدام timers.unenroll(). يرجى استخدام clearTimeout() أو clearInterval() الموثّقين علنًا بدلاً من ذلك.

DEP0097: MakeCallback مع خاصية domain

[السجل]

الإصدارالتغييرات
v10.0.0إلغاء الاستخدام أثناء وقت التشغيل.

النوع: وقت التشغيل

يجب على مستخدمي MakeCallback الذين يضيفون خاصية domain لحمل السياق، البدء في استخدام متغير async_context من MakeCallback أو CallbackScope، أو فئة AsyncResource عالية المستوى.

DEP0098: واجهات برمجة تطبيقات AsyncHooks المُضمّنة AsyncResource.emitBefore و AsyncResource.emitAfter

[السجل]

الإصدارالتغييرات
v12.0.0نهاية عمر الخدمة.
v10.0.0, v9.6.0, v8.12.0إلغاء الاستخدام أثناء وقت التشغيل.

النوع: نهاية عمر الخدمة

تُعرّض واجهة برمجة التطبيقات المُضمّنة التي يوفرها AsyncHooks طريقتي .emitBefore() و .emitAfter() اللتين يسهل جدًا استخدامهما بشكل غير صحيح، مما قد يؤدي إلى أخطاء لا يمكن استعادتها.

استخدم واجهة برمجة التطبيقات asyncResource.runInAsyncScope() بدلاً من ذلك، والتي توفر بديلاً أكثر أمانًا وأكثر ملاءمة. انظر https://github.com/nodejs/node/pull/18513.

DEP0099: واجهات برمجة التطبيقات C++ غير الواعية لسياق المُزامنة node::MakeCallback

[السجل]

الإصدارالتغييرات
v10.0.0إهمال وقت التجميع.

النوع: وقت التجميع

بعض إصدارات واجهات برمجة التطبيقات node::MakeCallback المتاحة لإضافات النظام الأساسية قديمة. يرجى استخدام إصدارات واجهة برمجة التطبيقات التي تقبل معلمة async_context.

DEP0100: process.assert()

[السجل]

الإصدارالتغييرات
v23.0.0نهاية العمر الافتراضي.
v10.0.0إهمال وقت التشغيل.
v0.3.7إهمال في الوثائق فقط.

النوع: نهاية العمر الافتراضي

process.assert() قديمة. يرجى استخدام وحدة assert بدلاً من ذلك.

لم تكن هذه ميزة موثقة أبدًا.

DEP0101: --with-lttng

[السجل]

الإصدارالتغييرات
v10.0.0نهاية العمر الافتراضي.

النوع: نهاية العمر الافتراضي

تم إزالة خيار وقت التجميع --with-lttng.

DEP0102: استخدام noAssert في عمليات Buffer#(read|write)

[السجل]

الإصدارالتغييرات
v10.0.0نهاية العمر الافتراضي.

النوع: نهاية العمر الافتراضي

لم تعد حجة noAssert لها أي وظيفة. يتم التحقق من جميع المدخلات بغض النظر عن قيمة noAssert. قد يؤدي تخطي التحقق إلى أخطاء وحوادث يصعب العثور عليها.

DEP0103: عمليات فحص أنواع process.binding('util').is[...]

[السجل]

الإصدارالتغييرات
v10.9.0تم استبداله بـ DEP0111.
v10.0.0إهمال في الوثائق فقط.

النوع: وثائق فقط (يدعم --pending-deprecation)

يجب تجنب استخدام process.binding() بشكل عام. يمكن استبدال طرق فحص الأنواع بشكل خاص باستخدام util.types.

تم استبدال هذا الإهمال بإهمال واجهة برمجة التطبيقات process.binding() (DEP0111).

DEP0104: الإجبار على سلسلة نصية process.env

[السجل]

الإصدارالتغييرات
v10.0.0إهمال في الوثائق فقط.

النوع: وثائق فقط (يدعم --pending-deprecation)

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

DEP0105: decipher.finaltol

[History]

الإصدارالتغييرات
v11.0.0نهاية العمر الافتراضي.
v10.0.0إهمال وقت التشغيل.

النوع: نهاية العمر الافتراضي

لم يتم توثيق decipher.finaltol() مطلقًا، وكان اسمًا مستعارًا لـ decipher.final(). تمت إزالة واجهة برمجة التطبيقات هذه، ويُوصى باستخدام decipher.final() بدلاً من ذلك.

DEP0106: crypto.createCipher و crypto.createDecipher

[History]

الإصدارالتغييرات
v22.0.0نهاية العمر الافتراضي.
v11.0.0إهمال وقت التشغيل.
v10.0.0إهمال في الوثائق فقط.

النوع: نهاية العمر الافتراضي

تمت إزالة crypto.createCipher() و crypto.createDecipher() لأنهما يستخدمان دالة اشتقاق مفتاح ضعيفة (MD5 بدون ملح) ومتجهات تهيئة ثابتة. يُوصى باستنتاج مفتاح باستخدام crypto.pbkdf2() أو crypto.scrypt() مع أملاح عشوائية، واستخدام crypto.createCipheriv() و crypto.createDecipheriv() للحصول على كائنات Cipher و Decipher على التوالي.

DEP0107: tls.convertNPNProtocols()

[History]

الإصدارالتغييرات
v11.0.0نهاية العمر الافتراضي.
v10.0.0إهمال وقت التشغيل.

النوع: نهاية العمر الافتراضي

كانت هذه دالة مساعدة غير موثقة لم تكن مخصصة للاستخدام خارج نواة Node.js، وقد أصبحت عتيقة مع إزالة دعم NPN (مفاوضة البروتوكول التالي).

DEP0108: zlib.bytesRead

[History]

الإصدارالتغييرات
v23.0.0نهاية العمر الافتراضي.
v11.0.0إهمال وقت التشغيل.
v10.0.0إهمال في الوثائق فقط.

النوع: نهاية العمر الافتراضي

اسم مستعار مُهمل لـ zlib.bytesWritten. تم اختيار الاسم الأصلي لأنّه كان منطقيًا أيضًا تفسير القيمة على أنها عدد البايتات التي قرأتها المحرّك، لكنّه غير متسق مع تيارات أخرى في Node.js التي تعرض القيم تحت هذه الأسماء.

DEP0109: دعم http و https و tls لعنوان URL غير صالح

[السجل]

الإصدارالتغييرات
v16.0.0نهاية العمر الافتراضي.
v11.0.0إهمال وقت التشغيل.

النوع: نهاية العمر الافتراضي

تم قبول بعض عناوين URL المدعومة سابقًا (ولكنها غير صالحة بشكل صارم) من خلال واجهات برمجة التطبيقات http.request() و http.get() و https.request() و https.get() و tls.checkServerIdentity() نظرًا لأنها كانت مقبولة بواسطة واجهة برمجة التطبيقات القديمة url.parse() . تستخدم واجهات برمجة التطبيقات المذكورة الآن محلل URL WHATWG الذي يتطلب عناوين URL صالحة بشكل صارم. إن تمرير عنوان URL غير صالح أمر مُهمل وسيتم إزالة الدعم في المستقبل.

DEP0110: البيانات المخزنة مؤقتًا في vm.Script

[السجل]

الإصدارالتغييرات
v10.6.0إهمال في الوثائق فقط.

النوع: وثائق فقط

خيار produceCachedData مهمل. استخدم script.createCachedData() بدلاً من ذلك.

DEP0111: process.binding()

[السجل]

الإصدارالتغييرات
v11.12.0تم إضافة دعم لـ --pending-deprecation.
v10.9.0إهمال في الوثائق فقط.

النوع: وثائق فقط (يدعم --pending-deprecation)

process.binding() مخصص للاستخدام بواسطة رمز Node.js الداخلي فقط.

في حين أن process.binding() لم تصل إلى حالة نهاية العمر الافتراضي بشكل عام، إلا أنها غير متوفرة عند تمكين نموذج الأذونات.

DEP0112: واجهات برمجة التطبيقات الخاصة في dgram

[السجل]

الإصدارالتغييرات
v11.0.0إهمال وقت التشغيل.

النوع: وقت التشغيل

احتوى مُعامل node:dgram سابقًا على العديد من واجهات برمجة التطبيقات التي لم تكن مخصصة أبدًا للوصول إليها خارج جوهر Node.js: Socket.prototype._handle، Socket.prototype._receiving، Socket.prototype._bindState، Socket.prototype._queue، Socket.prototype._reuseAddr، Socket.prototype._healthCheck()، Socket.prototype._stopReceiving()، و dgram._createSocketHandle().

DEP0113: Cipher.setAuthTag()، Decipher.getAuthTag()

[History]

الإصدارالتغييرات
v12.0.0نهاية العمر الافتراضي.
v11.0.0إهمال وقت التشغيل.

النوع: نهاية العمر الافتراضي

لم تعد وظيفتا Cipher.setAuthTag() و Decipher.getAuthTag() متوفرتين. لم يتم توثيقهما قط، وستؤديان إلى إرسال استثناء عند استدعائهما.

DEP0114: crypto._toBuf()

[History]

الإصدارالتغييرات
v12.0.0نهاية العمر الافتراضي.
v11.0.0إهمال وقت التشغيل.

النوع: نهاية العمر الافتراضي

لم تكن وظيفة crypto._toBuf() مُصممة للاستخدام من قبل الوحدات النمطية خارج نواة Node.js، وقد تمت إزالتها.

DEP0115: crypto.prng()، crypto.pseudoRandomBytes()، crypto.rng()

[History]

الإصدارالتغييرات
v11.0.0تم إضافة إهمال للوثائق فقط مع دعم --pending-deprecation.

النوع: وثائق فقط (يدعم --pending-deprecation)

في الإصدارات الحديثة من Node.js، لا يوجد فرق بين crypto.randomBytes() و crypto.pseudoRandomBytes(). تم إهمال الأخيرة مع أسماء مستعارة غير موثقة crypto.prng() و crypto.rng() لصالح crypto.randomBytes() وقد يتم إزالتها في إصدار مستقبلي.

DEP0116: واجهة برمجة تطبيقات عنوان URL القديمة

[History]

الإصدارالتغييرات
v19.0.0، v18.13.0تم إهمال url.parse() مرة أخرى في DEP0169.
v15.13.0، v14.17.0تم إلغاء الإهمال. تم تغيير الحالة إلى "قديم".
v11.0.0إهمال للوثائق فقط.

النوع: تم إلغاء الإهمال

تم إهمال واجهة برمجة تطبيقات عنوان URL القديمة. وهذا يشمل url.format()، url.parse()، url.resolve()، وكائن urlObject القديم. يرجى استخدام واجهة برمجة تطبيقات عنوان URL WHATWG بدلاً من ذلك.

DEP0117: مقابض التشفير الأصلية

[السجل]

الإصدارالتغييرات
v12.0.0نهاية عمر الخدمة.
v11.0.0إهمال وقت التشغيل.

النوع: نهاية عمر الخدمة

كشفت الإصدارات السابقة من Node.js عن مقابض لكائنات النظام الأصلية الداخلية من خلال خاصية _handle في فئات Cipher, Decipher, DiffieHellman, DiffieHellmanGroup, ECDH, Hash, Hmac, Sign, و Verify. تم إزالة خاصية _handle لأن الاستخدام غير السليم للكائن الأصلي قد يؤدي إلى تعطل التطبيق.

DEP0118: دعم dns.lookup() لاسم مضيف خاطئ

[السجل]

الإصدارالتغييرات
v11.0.0إهمال وقت التشغيل.

النوع: وقت التشغيل

دعمت الإصدارات السابقة من Node.js dns.lookup() مع اسم مضيف خاطئ مثل dns.lookup(false) بسبب التوافق مع الإصدارات السابقة. هذا السلوك غير موثق ويُعتقد أنه غير مستخدم في التطبيقات الواقعية. سيصبح خطأً في الإصدارات المستقبلية من Node.js.

DEP0119: واجهة برمجة التطبيقات الخاصة process.binding('uv').errname()

[السجل]

الإصدارالتغييرات
v11.0.0إهمال في الوثائق فقط.

النوع: الوثائق فقط (يدعم --pending-deprecation)

process.binding('uv').errname() قديم. يرجى استخدام util.getSystemErrorName() بدلاً من ذلك.

DEP0120: دعم عداد أداء Windows

[السجل]

الإصدارالتغييرات
v12.0.0نهاية عمر الخدمة.
v11.0.0إهمال وقت التشغيل.

النوع: نهاية عمر الخدمة

تم إزالة دعم عداد أداء Windows من Node.js. تم إهمال دوال COUNTER_NET_SERVER_CONNECTION(), COUNTER_NET_SERVER_CONNECTION_CLOSE(), COUNTER_HTTP_SERVER_REQUEST(), COUNTER_HTTP_SERVER_RESPONSE(), COUNTER_HTTP_CLIENT_REQUEST(), و COUNTER_HTTP_CLIENT_RESPONSE() غير الموثقة.

DEP0121: net._setSimultaneousAccepts()

[السجل]

الإصدارالتغييرات
v12.0.0إهمال وقت التشغيل.

النوع: وقت التشغيل

كانت دالة net._setSimultaneousAccepts() غير الموثقة مخصصة في الأصل للتحقق من الأخطاء وضبط الأداء عند استخدام وحدات node:child_process و node:cluster على Windows. الدالة ليست مفيدة بشكل عام وسيتم إزالتها. راجع المناقشة هنا: https://github.com/nodejs/node/issues/18391

DEP0122: tls Server.prototype.setOptions()

[History]

الإصدارالتغييرات
v12.0.0إهمال وقت التشغيل.

النوع: وقت التشغيل

الرجاء استخدام Server.prototype.setSecureContext() بدلاً من ذلك.

DEP0123: تعيين اسم الخادم TLS إلى عنوان IP

[History]

الإصدارالتغييرات
v12.0.0إهمال وقت التشغيل.

النوع: وقت التشغيل

لا يسمح RFC 6066 بتعيين اسم خادم TLS إلى عنوان IP. سيتم تجاهل هذا في الإصدارات المستقبلية.

DEP0124: استخدام REPLServer.rli

[History]

الإصدارالتغييرات
v15.0.0نهاية العمر الافتراضي.
v12.0.0إهمال وقت التشغيل.

النوع: نهاية العمر الافتراضي

هذه الخاصية هي مرجع إلى المثيل نفسه.

DEP0125: require('node:_stream_wrap')

[History]

الإصدارالتغييرات
v12.0.0إهمال وقت التشغيل.

النوع: وقت التشغيل

وحدة node:_stream_wrap مُهملة.

DEP0126: timers.active()

[History]

الإصدارالتغييرات
v11.14.0إهمال وقت التشغيل.

النوع: وقت التشغيل

تم إهمال timers.active() غير الموثقة سابقًا. يرجى استخدام timeout.refresh() الموثقة علنًا بدلاً من ذلك. إذا كان من الضروري إعادة الإشارة إلى مهلة الوقت، فيمكن استخدام timeout.ref() بدون أي تأثير على الأداء منذ Node.js 10.

DEP0127: timers._unrefActive()

[History]

الإصدارالتغييرات
v11.14.0إهمال وقت التشغيل.

النوع: وقت التشغيل

تم إهمال timers._unrefActive() غير الموثقة سابقًا و "الخاصة". يرجى استخدام timeout.refresh() الموثقة علنًا بدلاً من ذلك. إذا كان إلغاء الإشارة إلى مهلة الوقت ضروريًا، فيمكن استخدام timeout.unref() بدون أي تأثير على الأداء منذ Node.js 10.

DEP0128: الوحدات التي تحتوي على إدخال main غير صالح وملف index.js

[History]

الإصدارالتغييرات
v16.0.0إهمال وقت التشغيل.
v12.0.0وثائق فقط.

النوع: وقت التشغيل

ستحل الوحدات التي تحتوي على إدخال main غير صالح (مثل: ./does-not-exist.js) ولديها أيضًا ملف index.js في الدليل الرئيسي محل ملف index.js. هذا مُهمل، وسيؤدي إلى ظهور خطأ في إصدارات Node.js المستقبلية.

DEP0129: ChildProcess._channel

[History]

الإصدارالتغييرات
v13.0.0إهمال وقت التشغيل.
v11.14.0وثائق فقط.

النوع: وقت التشغيل

لم يُقصد استخدام الخاصية _channel لكائنات عملية الطفل التي تُرجعها الدوال spawn() وما شابهها للاستخدام العام. استخدم ChildProcess.channel بدلاً من ذلك.

DEP0130: Module.createRequireFromPath()

[History]

الإصدارالتغييرات
v16.0.0نهاية العمر الافتراضي.
v13.0.0إهمال وقت التشغيل.
v12.2.0وثائق فقط.

النوع: نهاية العمر الافتراضي

استخدم module.createRequire() بدلاً من ذلك.

DEP0131: محلل HTTP القديم

[History]

الإصدارالتغييرات
v13.0.0تمت إزالة هذه الميزة.
v12.22.0إهمال وقت التشغيل.
v12.3.0وثائق فقط.

النوع: نهاية العمر الافتراضي

محلل HTTP القديم، المستخدم افتراضيًا في إصدارات Node.js السابقة للإصدار 12.0.0، قديم وتم إزالته في الإصدار v13.0.0. قبل الإصدار v13.0.0، يمكن استخدام علم سطر الأوامر --http-parser=legacy للرجوع إلى استخدام المحلل القديم.

DEP0132: worker.terminate() مع دالة الاستدعاء العكسي

[History]

الإصدارالتغييرات
v12.5.0إهمال وقت التشغيل.

النوع: وقت التشغيل

مرور دالة الاستدعاء العكسي إلى worker.terminate() قديم. استخدم Promise المُرجع بدلاً من ذلك، أو مستمع لحدث 'exit' الخاص بالعامل.

DEP0133: http connection

[History]

الإصدارالتغييرات
v12.12.0إهمال الوثائق فقط.

النوع: وثائق فقط

يفضل استخدام response.socket على response.connection و request.socket على request.connection.

DEP0134: process._tickCallback

[History]

الإصدارالتغييرات
v12.12.0إهمال الوثائق فقط.

النوع: وثائق فقط (يدعم --pending-deprecation)

لم يتم توثيق الخاصية process._tickCallback أبدًا كواجهة برمجة تطبيقات مدعومة رسميًا.

DEP0135: WriteStream.open() و ReadStream.open() داخليتان

[History]

الإصدارالتغييرات
v13.0.0إهمال وقت التشغيل.

النوع: وقت التشغيل

WriteStream.open() [/api/fs#class-fswritestream] و ReadStream.open() [/api/fs#class-fsreadstream] هما واجهات برمجة تطبيقات داخلية غير موثقة لا معنى لاستخدامها في بيئة المستخدم. يجب دائمًا فتح تدفقات الملفات من خلال طرق المصنع الخاصة بها fs.createWriteStream() [/api/fs#fscreatewritestreampath-options] و fs.createReadStream() [/api/fs#fscreatereadstreampath-options] أو عن طريق تمرير مُعرّف ملف في الخيارات.

DEP0136: http finished

[History]

الإصدارالتغييرات
v13.4.0, v12.16.0إهمال وثائقي فقط.

النوع: وثائقي فقط

يشير response.finished [/api/http#responsefinished] إلى ما إذا كان قد تم استدعاء response.end() [/api/http#responseenddata-encoding-callback]، وليس ما إذا كان قد تم إصدار 'finish' وتم تفريغ البيانات الأساسية.

استخدم response.writableFinished [/api/http#responsewritablefinished] أو response.writableEnded [/api/http#responsewritableended] بدلاً من ذلك لتجنب الغموض.

للحفاظ على السلوك الحالي، يجب استبدال response.finished بـ response.writableEnded.

DEP0137: إغلاق fs.FileHandle عند جمع القمامة

[History]

الإصدارالتغييرات
v14.0.0إهمال وقت التشغيل.

النوع: وقت التشغيل

يُعتبر السماح بإغلاق كائن fs.FileHandle [/api/fs#class-filehandle] عند جمع القمامة أمرًا قديمًا. في المستقبل، قد يؤدي القيام بذلك إلى حدوث خطأ يُلقى به سيؤدي إلى إنهاء العملية.

يرجى التأكد من إغلاق جميع كائنات fs.FileHandle صراحةً باستخدام FileHandle.prototype.close() عندما لم يعد هناك حاجة إلى fs.FileHandle:

js
const fsPromises = require('node:fs').promises
async function openAndClose() {
  let filehandle
  try {
    filehandle = await fsPromises.open('thefile.txt', 'r')
  } finally {
    if (filehandle !== undefined) await filehandle.close()
  }
}

DEP0138: process.mainModule

[History]

الإصدارالتغييرات
v14.0.0إهمال في الوثائق فقط.

النوع: إهمال في الوثائق فقط

process.mainModule هي ميزة خاصة بـ CommonJS فقط بينما يتم مشاركة كائن process العام مع بيئة غير CommonJS. استخدامها داخل وحدات ECMAScript غير مدعوم.

لقد تم إهمالها لصالح require.main، لأنها تخدم نفس الغرض وهي متوفرة فقط في بيئة CommonJS.

DEP0139: process.umask() بدون وسيطات

[History]

الإصدارالتغييرات
v14.0.0, v12.19.0إهمال في الوثائق فقط.

النوع: إهمال في الوثائق فقط

إن استدعاء process.umask() بدون وسيطات يتسبب في كتابة قناع العملية (umask) على مستوى العملية مرتين. هذا يقدم حالة سباق بين الخيوط، وهو ثغرة أمنية محتملة. لا يوجد واجهة برمجة تطبيقات بديلة آمنة ومتوافقة مع جميع الأنظمة الأساسية.

DEP0140: استخدم request.destroy() بدلاً من request.abort()

[History]

الإصدارالتغييرات
v14.1.0, v13.14.0إهمال في الوثائق فقط.

النوع: إهمال في الوثائق فقط

استخدم request.destroy() بدلاً من request.abort().

DEP0141: repl.inputStream و repl.outputStream

[History]

الإصدارالتغييرات
v14.3.0إهمال في الوثائق فقط (يدعم [--pending-deprecation][]).

النوع: إهمال في الوثائق فقط (يدعم --pending-deprecation)

قامت وحدة node:repl بتصدير تيار الإدخال والإخراج مرتين. استخدم .input بدلاً من .inputStream و .output بدلاً من .outputStream.

DEP0142: repl._builtinLibs

[History]

الإصدارالتغييرات
v14.3.0إهمال في الوثائق فقط (يدعم [--pending-deprecation][]).

النوع: إهمال في الوثائق فقط

تقوم وحدة node:repl بتصدير خاصية _builtinLibs التي تحتوي على مصفوفة من الوحدات المدمجة. كانت غير كاملة حتى الآن، ومن الأفضل الاعتماد على require('node:module').builtinModules.

DEP0143: Transform._transformState

[History]

الإصدارالتغييرات
v14.5.0إهمال وقت التشغيل.

النوع: سيتم إزالة Transform._transformState وقت التشغيل في الإصدارات المستقبلية حيث لم يعد مطلوبًا نظرًا لتبسيط التنفيذ.

DEP0144: module.parent

[History]

الإصدارالتغييرات
v14.6.0, v12.19.0إهمال الوثائق فقط.

النوع: الوثائق فقط (يدعم --pending-deprecation)

يمكن لوحدة CommonJS الوصول إلى أول وحدة طلبتها باستخدام module.parent. تم إهمال هذه الميزة لأنها لا تعمل بشكل ثابت في وجود وحدات ECMAScript ولأنها تعطي تمثيلًا غير دقيق لرسوم وحدة CommonJS.

تستخدم بعض الوحدات هذه الميزة للتحقق مما إذا كانت هي نقطة دخول العملية الحالية. بدلاً من ذلك، يُنصح بمقارنة require.main و module:

js
if (require.main === module) {
  // قسم التعليمات البرمجية الذي سيتم تشغيله فقط إذا كان الملف الحالي هو نقطة الدخول.
}

عند البحث عن وحدات CommonJS التي طلبت الوحدة الحالية، يمكن استخدام require.cache و module.children:

js
const moduleParents = Object.values(require.cache).filter(m => m.children.includes(module))

DEP0145: socket.bufferSize

[History]

الإصدارالتغييرات
v14.6.0إهمال الوثائق فقط.

النوع: الوثائق فقط

socket.bufferSize هو مجرد اسم مستعار لـ writable.writableLength.

DEP0146: new crypto.Certificate()

[History]

الإصدارالتغييرات
v14.9.0إهمال الوثائق فقط.

النوع: الوثائق فقط

تم إهمال مُنشئ crypto.Certificate(). استخدم الطرق الثابتة لـ crypto.Certificate() بدلاً من ذلك.

DEP0147: fs.rmdir(path, { recursive: true }) {#dep0147-fsrmdirpath-{-recursive-true-}}

[History]

الإصدارالتغييرات
v16.0.0إهمال وقت التشغيل.
v15.0.0إهمال وقت التشغيل للسلوك التسامحي.
v14.14.0إهمال الوثائق فقط.

النوع: وقت التشغيل

في الإصدارات المستقبلية من Node.js، سيتم تجاهل خيار recursive لـ fs.rmdir و fs.rmdirSync و fs.promises.rmdir.

استخدم fs.rm(path, { recursive: true, force: true }) أو fs.rmSync(path, { recursive: true, force: true }) أو fs.promises.rm(path, { recursive: true, force: true }) بدلاً من ذلك.

DEP0148: تعيينات المجلدات في "exports" (شرطة مائلة نهائية "/")

[السجل]

الإصدارالتغييرات
v17.0.0نهاية العمر الافتراضي.
v16.0.0إهمال وقت التشغيل.
v15.1.0إهمال وقت التشغيل للاستيرادات ذاتية الإشارة.
v14.13.0إهمال وثائق فقط.

النوع: وقت التشغيل

يُهمل استخدام شرطة مائلة نهائية "/" لتحديد تعيينات مجلدات المسار الفرعي في حقول تصدير المسار الفرعي أو استيراد المسار الفرعي. استخدم أنماط المسار الفرعي بدلاً من ذلك.

DEP0149: http.IncomingMessage#connection

[السجل]

الإصدارالتغييرات
v16.0.0إهمال وثائق فقط.

النوع: وثائق فقط.

يفضل استخدام message.socket على message.connection.

DEP0150: تغيير قيمة process.config

[السجل]

الإصدارالتغييرات
v19.0.0نهاية العمر الافتراضي.
v16.0.0إهمال وقت التشغيل.

النوع: نهاية العمر الافتراضي

توفر خاصية process.config إمكانية الوصول إلى إعدادات وقت تجميع Node.js. ومع ذلك، فإن الخاصية قابلة للتغيير، وبالتالي فهي عرضة للتلاعب. سيتم إزالة إمكانية تغيير القيمة في إصدار مستقبلي من Node.js.

DEP0151: البحث عن الفهرس الرئيسي والبحث عن الامتداد

[السجل]

الإصدارالتغييرات
v16.0.0إهمال وقت التشغيل.
v15.8.0، v14.18.0إهمال وثائق فقط مع دعم --pending-deprecation.

النوع: وقت التشغيل

في السابق، كان البحث عن index.js و البحث عن الامتدادات يُطبق على حل نقطة دخول import 'pkg' الرئيسية، حتى عند حل وحدات ES.

مع هذا الإهمال، تتطلب جميع حلول نقطة دخول وحدة ES الرئيسية مدخلاً صريحاً "exports" أو "main" مع امتداد الملف الدقيق.

DEP0152: خصائص Extension PerformanceEntry

[السجل]

الإصدارالتغييرات
v16.0.0إهمال وقت التشغيل.

النوع: وقت التشغيل

أنواع الكائنات 'gc', 'http2', و 'http' <PerformanceEntry> لديها خصائص إضافية مُعيّنة لها توفر معلومات إضافية. أصبحت هذه الخصائص متاحة الآن داخل خاصية detail القياسية لكائن PerformanceEntry. تم إهمال مُحَوِّلات الوصول الحالية ويجب عدم استخدامها بعد الآن.

DEP0153: نوع الإكراه في خيارات dns.lookup و dnsPromises.lookup

[السجل]

الإصدارالتغييرات
v18.0.0نهاية العمر الافتراضي.
v17.0.0إهمال وقت التشغيل.
v16.8.0إهمال وثائقي فقط.

النوع: نهاية العمر الافتراضي

يؤدي استخدام قيمة غير عدد صحيح غير معدومة لخيار family، وقيمة غير رقمية غير معدومة لخيار hints، وقيمة غير منطقية غير معدومة لخيار all، أو قيمة غير منطقية غير معدومة لخيار verbatim في dns.lookup() و dnsPromises.lookup() إلى إصدار خطأ ERR_INVALID_ARG_TYPE.

DEP0154: خيارات إنشاء زوج مفاتيح RSA-PSS

[السجل]

الإصدارالتغييرات
v20.0.0إهمال وقت التشغيل.
v16.10.0إهمال وثائقي فقط.

النوع: وقت التشغيل

تم استبدال خيارات 'hash' و 'mgf1Hash' بـ 'hashAlgorithm' و 'mgf1HashAlgorithm'.

DEP0155: الشرطة المائلة العكسية الأخيرة في حلول محددات الأنماط

[السجل]

الإصدارالتغييرات
v17.0.0إهمال وقت التشغيل.
v16.10.0إهمال وثائقي فقط مع دعم --pending-deprecation.

النوع: وقت التشغيل

تم إهمال إعادة تعيين المُحددات التي تنتهي بـ "/" مثل import 'pkg/x/' لحل أنماط "exports" و "imports" للحزمة.

DEP0156: خاصية .aborted وحدث 'abort', 'aborted' في http

[السجل]

الإصدارالتغييرات
v17.0.0, v16.12.0إهمال وثائقي فقط.

النوع: وثائقي فقط

انتقل إلى واجهة برمجة التطبيقات <Stream> بدلاً من ذلك، حيث أن http.ClientRequest، و http.ServerResponse، و http.IncomingMessage كلها تعتمد على الدفق. تحقق من stream.destroyed بدلاً من خاصية .aborted، واستمع إلى 'close' بدلاً من حدث 'abort', 'aborted'.

خاصية .aborted وحدث 'abort' مفيدان فقط للكشف عن مكالمات .abort() . لإغلاق طلب مبكرًا، استخدم Stream .destroy([error])ثم تحقق من خاصية.destroyedويجب أن يكون لحدث'close' نفس التأثير. يجب أن يتحقق الطرف المُستلم أيضًا من قيمة [readable.readableEnded](/ar/api/stream#readablereadableended) على [http.IncomingMessage`](/ar/api/http#class-httpincomingmessage) للحصول على ما إذا كان إغلاقًا مُلغى أو إغلاقًا سلسًا.

DEP0157: دعم Thenable في التدفقات

[التاريخ]

الإصدارالتغييرات
v18.0.0نهاية العمر الافتراضي.
v17.2.0, v16.14.0إهمال في الوثائق فقط.

النوع: نهاية العمر الافتراضي

كانت ميزة غير موثقة في تدفقات Node.js هي دعم Thenables في طرق التنفيذ. وقد تم إهمال هذا الآن، استخدم الاستدعاءات العكسية بدلاً من ذلك وتجنب استخدام الدالة غير المتزامنة لطرق تنفيذ التدفقات.

تسببت هذه الميزة في مواجهة المستخدمين لمشاكل غير متوقعة حيث يقوم المستخدم بتنفيذ الدالة بأسلوب الاستدعاء العكسي ولكنه يستخدم، على سبيل المثال، طريقة غير متزامنة من شأنها أن تسبب خطأً لأن مزج معاني الوعد والاستدعاء العكسي غير صالح.

js
const w = new Writable({
  async final(callback) {
    await someOp()
    callback()
  },
})

DEP0158: buffer.slice(start, end)

[التاريخ]

الإصدارالتغييرات
v17.5.0, v16.15.0إهمال في الوثائق فقط.

النوع: وثائق فقط

تم إهمال هذه الطريقة لأنها غير متوافقة مع Uint8Array.prototype.slice()، وهي فئة عليا لـ Buffer.

استخدم buffer.subarray الذي يقوم بنفس الشيء بدلاً من ذلك.

DEP0159: ERR_INVALID_CALLBACK

[التاريخ]

الإصدارالتغييرات
v18.0.0نهاية العمر الافتراضي.

النوع: نهاية العمر الافتراضي

تم إزالة رمز الخطأ هذا نظرًا لإضافة المزيد من الارتباك إلى الأخطاء المستخدمة للتحقق من صحة نوع القيمة.

DEP0160: process.on('multipleResolves', handler)

[التاريخ]

الإصدارالتغييرات
v18.0.0إهمال وقت التشغيل.
v17.6.0, v16.15.0إهمال في الوثائق فقط.

النوع: وقت التشغيل.

تم إهمال هذا الحدث لأنه لم يعمل مع مُجمعات وعود V8 مما قلل من فائدته.

DEP0161: process._getActiveRequests() و process._getActiveHandles()

[التاريخ]

الإصدارالتغييرات
v17.6.0, v16.15.0إهمال في الوثائق فقط.

النوع: وثائق فقط

لم تكن وظائف process._getActiveHandles() و process._getActiveRequests() مخصصة للاستخدام العام ويمكن إزالتها في الإصدارات المستقبلية.

استخدم process.getActiveResourcesInfo() للحصول على قائمة بأنواع الموارد النشطة وليس مراجعها الفعلية.

DEP0162: الإجبار على تحويل fs.write(), fs.writeFileSync() إلى سلسلة نصية

[السجل]

الإصدارالتغييرات
v19.0.0نهاية عمر الدعم.
v18.0.0إهمال وقت التشغيل.
v17.8.0, v16.15.0إهمال في الوثائق فقط.

النوع: نهاية عمر الدعم

حُذِرَ الإجبار الضمني على تحويل الكائنات التي تملك خاصية toString، والتي تُمرَّر كمعامل ثاني في fs.write()، fs.writeFile()، fs.appendFile()، fs.writeFileSync()، وfs.appendFileSync(). حوِّلها إلى سلاسل نصية بدائية.

DEP0163: channel.subscribe(onMessage), channel.unsubscribe(onMessage)

[السجل]

الإصدارالتغييرات
v18.7.0, v16.17.0إهمال في الوثائق فقط.

النوع: إهمال في الوثائق فقط

تم إهمال هاتين الطريقتين لأنه يمكن استخدامهما بطريقة لا تبقي مرجع القناة حيًا لفترة كافية لتلقي الأحداث.

استخدم diagnostics_channel.subscribe(name, onMessage) أو diagnostics_channel.unsubscribe(name, onMessage) اللذين يقومان بنفس الشيء بدلاً من ذلك.

DEP0164: الإجبار على تحويل process.exit(code), process.exitCode إلى عدد صحيح

[السجل]

الإصدارالتغييرات
v20.0.0نهاية عمر الدعم.
v19.0.0إهمال وقت التشغيل.
v18.10.0, v16.18.0إهمال في الوثائق فقط لإجبار تحويل process.exitCode إلى عدد صحيح.
v18.7.0, v16.17.0إهمال في الوثائق فقط لإجبار تحويل process.exit(code) إلى عدد صحيح.

النوع: نهاية عمر الدعم

حُذِرَت القيم بخلاف undefined، null، الأعداد الصحيحة، والسلاسل النصية الصحيحة (مثل '1') كقيمة لمعامل code في process.exit() وكقيمة لتعيينها إلى process.exitCode.

DEP0165: --trace-atomics-wait

[History]

الإصدارالتغييرات
v23.0.0نهاية العمر الافتراضي.
v22.0.0إهمال وقت التشغيل.
v18.8.0، v16.18.0إهمال وثائقي فقط.

النوع: نهاية العمر الافتراضي

تم إزالة علم --trace-atomics-wait لأنه يستخدم خطاف V8 SetAtomicsWaitCallback، والذي سيتم إزالته في إصدار V8 مستقبلي.

DEP0166: الشرطة المائلة المزدوجة في أهداف الاستيراد والتصدير

[History]

الإصدارالتغييرات
v19.0.0إهمال وقت التشغيل.
v18.10.0إهمال وثائقي فقط مع دعم --pending-deprecation.

النوع: وقت التشغيل

أهداف استيراد وتصدير الحزمة التي يتم تعيينها إلى المسارات التي تتضمن شرطة مائلة مزدوجة ("/" أو "") قديمة وستفشل مع خطأ التحقق من الدقة في إصدار مستقبلي. ينطبق هذا الإهمال نفسه أيضًا على مطابقات الأنماط التي تبدأ أو تنتهي بشرطة مائلة.

DEP0167: مثيلات DiffieHellmanGroup الضعيفة (modp1, modp2, modp5)

[History]

الإصدارالتغييرات
v18.10.0، v16.18.0إهمال وثائقي فقط.

النوع: وثائقي فقط

مجموعات MODP المعروفة modp1 و modp2 و modp5 قديمة لأنها ليست آمنة ضد الهجمات العملية. راجع RFC 8247 القسم 2.4 للحصول على التفاصيل.

قد تتم إزالة هذه المجموعات في إصدارات Node.js المستقبلية. يجب على التطبيقات التي تعتمد على هذه المجموعات تقييم استخدام مجموعات MODP أقوى بدلاً من ذلك.

DEP0168: استثناء غير معالج في استدعاءات Node-API

[History]

الإصدارالتغييرات
v18.3.0، v16.17.0إهمال وقت التشغيل.

النوع: وقت التشغيل

تم الآن إهمال الكبت الضمني للاستثناءات غير المعالجة في استدعاءات Node-API.

اضبط العلم --force-node-api-uncaught-exceptions-policy لإجبار Node.js على إصدار حدث 'uncaughtException' إذا لم يتم التعامل مع الاستثناء في استدعاءات Node-API.

DEP0169: عنوان URL غير آمن url.parse()

[السجل]

الإصدارالتغييرات
v19.9.0، v18.17.0تم إضافة دعم لـ --pending-deprecation.
v19.0.0، v18.13.0إهمال وثائقي فقط.

النوع: إهمال وثائقي فقط (يدعم --pending-deprecation)

سلوك url.parse() غير موحد ومعرض لأخطاء لها آثار أمنية. استخدم واجهة برمجة تطبيقات URL WHATWG بدلاً من ذلك. لا يتم إصدار CVEs لثغرات أمان url.parse().

DEP0170: منفذ غير صالح عند استخدام url.parse()

[السجل]

الإصدارالتغييرات
v20.0.0إهمال وقت التشغيل.
v19.2.0، v18.13.0إهمال وثائقي فقط.

النوع: وقت التشغيل

يقبل url.parse() عناوين URL ذات منافذ ليست أرقامًا. قد يؤدي هذا السلوك إلى انتحال اسم المضيف مع إدخال غير متوقع. ستُلقي هذه عناوين URL خطأً في الإصدارات المستقبلية من Node.js، كما تفعل بالفعل واجهة برمجة تطبيقات URL WHATWG.

DEP0171: مُعيّنات لـ http.IncomingMessage الرؤوس والملحقات

[السجل]

الإصدارالتغييرات
v19.3.0، v18.13.0إهمال وثائقي فقط.

النوع: إهمال وثائقي فقط

في إصدار مستقبلي من Node.js، ستصبح message.headers، وmessage.headersDistinct، وmessage.trailers، وmessage.trailersDistinct قراءة فقط.

DEP0172: خاصية asyncResource من الدوال المرتبطة بـ AsyncResource

[السجل]

الإصدارالتغييرات
v20.0.0إهمال وقت التشغيل.

النوع: وقت التشغيل

في إصدار مستقبلي من Node.js، لن يتم إضافة خاصية asyncResource بعد الآن عند ربط دالة بـ AsyncResource.

DEP0173: فئة assert.CallTracker

[السجل]

الإصدارالتغييرات
v20.1.0إهمال وثائقي فقط.

النوع: إهمال وثائقي فقط

في إصدار مستقبلي من Node.js، سيتم إزالة assert.CallTracker. ضع في اعتبارك استخدام بدائل مثل دالة المساعدة mock.

DEP0174: استدعاء promisify على دالة تُرجع Promise

[السجل]

الإصدارالتغييرات
v21.0.0إهمال وقت التشغيل.
v20.8.0إهمال في الوثائق فقط.

النوع: وقت التشغيل

استدعاء util.promisify على دالة تُرجع

DEP0175: util.toUSVString

[السجل]

الإصدارالتغييرات
v20.8.0إهمال في الوثائق فقط.

النوع: إهمال في الوثائق فقط

تم إهمال واجهة برمجة التطبيقات util.toUSVString(). يرجى استخدام String.prototype.toWellFormed بدلاً من ذلك.

DEP0176: fs.F_OK, fs.R_OK, fs.W_OK, fs.X_OK

[السجل]

الإصدارالتغييرات
v20.8.0إهمال في الوثائق فقط.

النوع: إهمال في الوثائق فقط

تم إهمال مُعلمات F_OK, R_OK, W_OK و X_OK المعروضة مباشرةً على node:fs. احصل عليها من fs.constants أو fs.promises.constants بدلاً من ذلك.

DEP0177: util.types.isWebAssemblyCompiledModule

[السجل]

الإصدارالتغييرات
v21.7.0, v20.12.0نهاية عمر الخدمة.
v21.3.0, v20.11.0تم تعيين رمز إهمال.
v14.0.0إهمال في الوثائق فقط.

النوع: نهاية عمر الخدمة

تم إزالة واجهة برمجة التطبيقات util.types.isWebAssemblyCompiledModule. يرجى استخدام value instanceof WebAssembly.Module بدلاً من ذلك.

DEP0178: dirent.path

[السجل]

الإصدارالتغييرات
v23.0.0إهمال وقت التشغيل.
v21.5.0, v20.12.0, v18.20.0إهمال في الوثائق فقط.

النوع: وقت التشغيل

تم إهمال dirent.path نظرًا لافتقارها إلى الاتساق عبر سطور الإصدارات. يرجى استخدام dirent.parentPath بدلاً من ذلك.

DEP0179: مُنشئ Hash

[السجل]

الإصدارالتغييرات
v22.0.0إهمال وقت التشغيل.
v21.5.0, v20.12.0إهمال في الوثائق فقط.

النوع: وقت التشغيل

تم إهمال استدعاء فئة Hash مباشرةً باستخدام Hash() أو new Hash() نظرًا لكونها عناصر داخلية، وليست مخصصة للاستخدام العام. يرجى استخدام طريقة crypto.createHash() لإنشاء مثيلات Hash.

DEP0180: مُنشئ fs.Stats

[السجل]

الإصدارالتغييرات
v22.0.0إهمال وقت التشغيل.
v20.13.0إهمال في الوثائق فقط.

النوع: وقت التشغيل

استدعاء فئة fs.Stats مباشرةً باستخدام Stats() أو new Stats() أمر مُهمل نظرًا لكونه جزءًا داخليًا، وليس مُخصصًا للاستخدام العام.

DEP0181: مُنشئ Hmac

[السجل]

الإصدارالتغييرات
v22.0.0إهمال وقت التشغيل.
v20.13.0إهمال في الوثائق فقط.

النوع: وقت التشغيل

استدعاء فئة Hmac مباشرةً باستخدام Hmac() أو new Hmac() أمر مُهمل نظرًا لكونه جزءًا داخليًا، وليس مُخصصًا للاستخدام العام. يرجى استخدام طريقة crypto.createHmac() لإنشاء مثيلات Hmac.

DEP0182: علامات المصادقة GCM القصيرة بدون authTagLength صريح

[السجل]

الإصدارالتغييرات
v23.0.0إهمال وقت التشغيل.
v20.13.0إهمال في الوثائق فقط.

النوع: وقت التشغيل

يجب على التطبيقات التي ترغب في استخدام علامات مصادقة أقصر من طول علامة المصادقة الافتراضية تعيين خيار authTagLength الخاص بوظيفة crypto.createDecipheriv() إلى الطول المناسب.

بالنسبة للتشفير في وضع GCM، تقبل وظيفة decipher.setAuthTag() علامات مصادقة بأي طول صالح (انظر DEP0090). هذا السلوك مُهمل لمواءمة أفضل مع التوصيات وفقًا لـ NIST SP 800-38D.

DEP0183: واجهات برمجة التطبيقات القائمة على محرك OpenSSL

[السجل]

الإصدارالتغييرات
v22.4.0, v20.16.0إهمال في الوثائق فقط.

النوع: إهمال في الوثائق فقط

أهمل OpenSSL 3 دعم المحركات المُخصصة مع توصية بالتحويل إلى نموذج المُوفر الجديد الخاص به. يعتمد خيار clientCertEngine لـ https.request()، وtls.createSecureContext()، وtls.createServer()؛ وprivateKeyEngine وprivateKeyIdentifier لـ tls.createSecureContext()؛ وcrypto.setEngine() جميعها على هذه الوظيفة من OpenSSL.

DEP0184: إنشاء مثيلات لصفوف node:zlib بدون new

[السجل]

الإصدارالتغييرات
v22.9.0، v20.18.0إهمال في الوثائق فقط.

النوع: إهمال في الوثائق فقط

إنشاء مثيلات للصفوف بدون المؤهل new الذي تم تصديره بواسطة وحدة node:zlib قديم. يُنصح باستخدام المؤهل new بدلاً من ذلك. ينطبق هذا على جميع صفوف Zlib، مثل Deflate، DeflateRaw، Gunzip، Inflate، InflateRaw، Unzip، و Zlib.

DEP0185: إنشاء مثيلات لصفوف node:repl بدون new

[السجل]

الإصدارالتغييرات
v22.9.0، v20.18.0إهمال في الوثائق فقط.

النوع: إهمال في الوثائق فقط

إنشاء مثيلات للصفوف بدون المؤهل new الذي تم تصديره بواسطة وحدة node:repl قديم. يُنصح باستخدام المؤهل new بدلاً من ذلك. ينطبق هذا على جميع صفوف REPL، بما في ذلك REPLServer و Recoverable.

DEP0187: تمرير أنواع وسيطة غير صالحة إلى fs.existsSync

[السجل]

الإصدارالتغييرات
v23.4.0وثائق فقط.

النوع: إهمال في الوثائق فقط

يُعتبر تمرير أنواع وسيطة غير مدعومة قديمًا، وبدلاً من إرجاع false، سيتم طرح خطأ في إصدار مستقبلي.

DEP0188: process.features.ipv6 و process.features.uv

[السجل]

الإصدارالتغييرات
v23.4.0إهمال في الوثائق فقط.

النوع: إهمال في الوثائق فقط

هذه الخصائص هي true بشكل غير مشروط. أي عمليات تحقق تعتمد على هذه الخصائص زائدة عن الحاجة.

DEP0189: process.features.tls_*

[السجل]

الإصدارالتغييرات
v23.4.0إهمال في الوثائق فقط.

النوع: إهمال في الوثائق فقط

process.features.tls_alpn، process.features.tls_ocsp، و process.features.tls_sni قديمة، حيث أن قيمها مضمونة لتكون مطابقة لقيمة process.features.tls.