English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
وظائف بدلاً من مodule Node.js–في بعض الحالاتفي الحالة، تريد تحسين الوظائف الحالية من خلال إعادة كتابة المodule. في هذا الدليل لـ Node.js، سنتعلم كيفية إعادة كتابة وظائف مodule Node.js.
لإعادة كتابة الوظائف الموجودة في مodule Node.js، اتبع التعليمات التالية خطوة بخطوة:
خطوة أولى لتغطية الوظيفة في الجهاز هي استخدام دالة require لتشمل الجهاز نفسه.
var newMod = require('<module_name>');
لقد قمنا بجلب الجهاز إلى المتغير.
استخدام المتغيرات في module newMod، استخدم الجملة التالية لإزالة الدالة.
delete newMod['<function_name>'];
تذكر أن التغييرات التي تم إجراؤها هي فقط لتغيير متغيرات الجهاز الجديد، وليس لتغيير الجهاز الأصلي نفسه.
استخدم المتغير في وحدة newMod، أضف وظيفة بنفس الاسم باستخدام النحو التالي في الخطوة السابقة.
newMod.<function_name> = function(function_parameters) { // جسم الوظيفة };
يجب عليك إعادة تصدير الوحدة لتطبيق الوظيفة المعدلة.
module.exports = newMod;
الآن، يمكنك استخدام المتغير newMod للوحدة لاستدعاء الوظيفة، ثم تنفيذ الوظيفة المعدلة.
في هذا المثال، سنقوم بإعادة كتابة وظيفة readFile() في وحدة Node fs.
الخطوة الأولى لإعادة كتابة وظيفة الوحدة هي استخدام وظيفة require لتشمل الوحدة نفسها.
// شمل الوحدة التي تريد تغطية وظيفتها var fs = require('fs'); // قم بإزالة الوظيفة التي تريد تغطيتها delete fs['readFile']; // أضف وظيفة جديدة بنفس الاسم fs.readFile = function(str){ console.log("تم تعديل الوظيفة."); console.log(str); } // قم بتعديل إعادة التصدير لتطبيق التغييرات module.exports = fs // يمكنك استخدام الوظيفة الجديدة التي تم تغطيتها fs.readFile("sample.txt");
نتائج الإخراج
~/workspace/nodejs$ node node-js-overriding-function-in-module.js
رسالة من وظيفة جديدة مضافة إلى الوحدة
sample.txt
قد لا يكون تعديل وظيفة readFile() فكرة جيدة، ولكنها كافية للتحديد.
في هذا الدرس -إعادة كتابة وظائف وحدة Node.js، لقد تعلمنا كيفية استخدام برنامج Node.js كمثال لتغطية وظائف وحدة Node.js.