الأمر نفسه ينطبق على الملف، فقد تشمل عملياته تعديل الملف، أو إدراج بيانات فيه، أو حذف واحدة. سيتم إفساد التطبيق بأكمله إذا قام المطور بتطبيق عمليات الملفات على الدلائل أو العكس.
ستوضح هذه المقالة الطرق لاكتشاف ما إذا كان المسار المقدم عبارة عن ملف أو دليل من خلال تغطية هذه الطرق:
- طريقة 'statSync ()' للكشف عن المسار الذي يؤدي إلى الدليل أو الملف
- طريقة 'stat()' للكشف عن المسار الذي يؤدي إلى الدليل أو الملف
كيفية اكتشاف المسار المقدم وهو ملف أو دليل في Node.js؟
هناك طريقتان يوفرهما ' خ 'وحدة وهي' هو الدليل () ' و ' isFile() 'والتي لها غرض وحيد هو التحقق مما إذا كان المسار المقدم يؤدي إلى ملف أو دليل. تُستخدم هذه الطرق في كل من السيناريوهات المتزامنة وغير المتزامنة باستخدام ' ستاتسينك () ' و ' القانون الأساسي () ' طُرق. تم توضيح هاتين الطريقتين أدناه لاكتشاف ما إذا كان المسار المقدم يؤدي إلى ملف أو دليل.
الطريقة الأولى: طريقة 'statSync ()' للكشف عن المسار الذي يؤدي إلى الدليل أو الملف
ال ' ستاتسينك () 'الطريقة المقدمة من ' خ ' وحدة يستخدم بشكل أساسي لإجراء عمليات متزامنة. تقوم هذه الطريقة في حالتنا بتخزين مثيل المسار المقدم مرة واحدة فقط. ومن ثم يعين ' هو الدليل () ' و ' isFile() 'الطرق لإرجاع ما إذا كان المسار المحدد يؤدي إلى دليل أو ملف.
دعنا نزور مقتطف الكود أدناه للتنفيذ العملي لطريقة 'statSync ()':
مقدار ثابت fsObj = يتطلب ( 'خس' ) ;
اسمحوا ملف المسار = fsObj. statSync ( '/Users/kahou/Documents/readlineProj/mcu.db' ) ;
وحدة التحكم. سجل ( 'هل تم توفير مسارات تؤدي إلى ملف؟ ' + pathFile. isFile ( ) ) ;
pathDir = fsObj. statSync ( '/المستخدمون/كاهو/المستندات/readlineProj' ) ;
وحدة التحكم. سجل ( 'هل يتم توفير مسار يؤدي إلى دليل؟ ' + pathDir. isDirectory ( ) ) ;
شرح الكود المذكور أعلاه موضح أدناه:
- أولاً، قم باستيراد ' خ 'وحدة وتخزين مثيلها في' fsObj ' عامل.
- ثم قم باستدعاء ' ستاتسينك () 'طريقة باستخدام' fsObj 'المتغير وتمرير المسار المحدد داخل قوسه. قم بتخزين مرجع هذا المسار داخل ' pathFile ' عامل.
- بعد ذلك، قم بتعيين ' isFile() 'طريقة مع' pathFile ' لإرجاع قيمة منطقية توضح ما إذا كان المسار المقدم يؤدي إلى ملف أم لا.
- بعد ذلك، قم باستدعاء مرة أخرى ' ستاتسينك () 'الطريقة وتمرير المسار الجديد.
- وأخيرًا، أرفق ' هو الدليل () 'الطريقة مع القيمة التي يتم إرجاعها بواسطة' ستارت سينك () ' طريقة.
الآن، قم بتنفيذ الملف الحالي باستخدام الأمر أدناه:
'عقدة <اسم الملف>'
على سبيل المثال، قمنا بتنفيذ الملف 'app.js':
يظهر الناتج قيمة ' حقيقي 'يعني أن المسارات المتوفرة مخصصة للمجلد وتم اكتشاف الملف.
الطريقة الثانية: طريقة 'stat()' للكشف عن المسار الذي يؤدي إلى الدليل أو الملف
تُعرف الطريقة الأخرى التي تعمل بشكل مثالي مع البيئة غير المتزامنة باسم ' القانون الأساسي () 'الطريقة التي توفرها' خ ' وحدة. كما يستخدم نفس ' isFile() ' و ' هو الدليل () ' ولكن نظرًا لطبيعتها غير المتزامنة، يمكن تمرير المسار الفردي إلى كلا الطريقتين. يحتوي على معلمتين، الأول مسار مخزن والثاني عبارة عن وظيفة رد اتصال تنفذ بعض العمليات على المسار المقدم:
مقدار ثابت fsObj = يتطلب ( 'خس' ) ,this.testPath = '/المستخدمون/كاهو/المستندات/readlineProj'
// استخدم طريقة stat()
fsObj. القانون الأساسي ( this.testPath , ( خطأ , statObj ) => {
لو ( ! خطأ ) {
لو ( statObj. isFile ( ) ) {
وحدة التحكم. سجل ( ' \ن نعم! المسار المقدم يؤدي إلى ملف؟ ' ) ;
}
آخر لو ( statObj. isDirectory ( ) ) {
وحدة التحكم. سجل ( ' \ن نعم! المسار المقدم يؤدي إلى الدليل؟ ' ) ;
}
}
آخر
يرمي خطأ ;
} ) ;
شرح الكود المذكور أعلاه موضح أدناه:
- أولاً، قم باستيراد ' خ 'وحدة وتخزين مثيلها في' fsObj ' عامل. إنشاء ' this.testPath 'المتغير الذي يخزن المسار المقدم من قبل المختبر.
- الآن قم باستدعاء ' القانون الأساسي () 'طريقة وتمرير' this.testPath ' كمعلمة أولى ووظيفة رد الاتصال كمعلمة ثانية.
- تحتوي وظيفة رد الاتصال على ' خطأ 'كمعلمة أولى و' statObj 'كالثاني. ال ' خطأ 'يحتوي على أخطاء تنشأ أثناء التنفيذ ويحتوي 'startObj' على المسار المقدم.
- داخل الوظيفة، استخدم ' لو ' عبارة يتم تشغيلها إذا لم يتم العثور على خطأ.
- ال ' متداخلة إذا 'يتم استخدام البيانات لتعيين' isFile() ' و ' هو الدليل () 'طرق مع' statObj '.
- إذا عادت الطرق ' حقيقي 'عندها فقط يتم تنفيذ هذا القسم ويعرض رسائل النجاح وفقًا لذلك.
بعد تنفيذ البرنامج النصي أعلاه، تظهر المحطة مثل هذا:
كما ترون، تم الآن اكتشاف المسار المقدم ويؤكد أن المسار المقدم يؤدي إلى الدليل.
خاتمة
لاكتشاف ما إذا كان المسار المقدم هو مسار دليل أو ملف في NodeJs، فإن طرق ' isFile() ' و ' isDirectory ' يستخدم. يتم توفير المسارات التي يمكن الوصول إليها بهذه الطرق من خلال ' ستاتسينك () ' و ' القانون الأساسي () ' أساليب ' خ 'وحدة NodeJs. تقوم هذه الطرق بتخزين المسارات المتوفرة بطريقة متزامنة وغير متزامنة على التوالي. لقد أوضحت هذه المدونة الإجراء الخاص باكتشاف ما إذا كان المسار المقدم يؤدي إلى ملف أو دليل في NodeJS.