# دستور fs.mkdir در Node.js دستور fs.mkdir یکی از دستورات مهم در زبان برنامه‌نویسی Node.js است که برای ایجاد یک پوشه جدید در سیستم فایل استفاده می‌شود. این دستور از ماژول fs در Node.js قابل استفاده است و با استفاده از آن می‌توانیم به راحتی پوشه‌ها را ایجاد کنیم. ## چگونگی استفاده از دستور fs.mkdir برای استفاده از دستور fs.mkdir در Node.js، ابتدا باید ماژول fs را در برنامه خود وارد کنیم. سپس با استفاده از تابع mkdir این ماژول، می‌توانیم پوشه جدیدی را در سیستم فایل ایجاد کنیم. در ادامه یک مثال برای استفاده از این دستور آورده شده است: ```javascript const fs = require('fs'); fs.mkdir('path/to/directory', (err) => { if (err) { console.error(err); } else { console.log('پوشه با موفقیت ایجاد شد.'); } }); ``` در این مثال، دستور fs.mkdir از ماژول fs استفاده شده است تا پوشه‌ای با نام path/to/directory ایجاد شود. در صورت بروز خطا، خطا در کنسول نمایش داده می‌شود و در غیر این صورت پیام "پوشه با موفقیت ایجاد شد." نمایش داده می‌شود. ## پارامترهای دستور fs.mkdir دستور fs.mkdir در Node.js دارای چندین پارامتر است که می‌توان برای تنظیمات مختلف استفاده کرد. در زیر پارامترهای اصلی این دستور آورده شده است: 1. **path**: مسیر کامل پوشه که قرار است ایجاد شود. 2. **options**: یک شیء که حاوی تنظیمات دیگری برای ایجاد پوشه است. این پارامتر اختیاری است. - **recursive**: اگر مقدار این پارامتر true باشد، فرآیند ایجاد پوشه‌های والد نیز انجام می‌شود. در غیر این صورت، در صورتی که پوشه‌ی والد وجود نداشته باشد، خطا رخ می‌دهد. - **mode**: حالت مجوز پوشه. این مقدار به صورت عددی یا با استفاده از ثوابت مانند fs.constants.S_IRUSR و fs.constants.S_IWUSR قابل تنظیم است. ## استفاده از دستور fs.mkdirSync علاوه بر استفاده از تابع mkdir با استفاده از callback، در Node.js می‌توان از تابع fs.mkdirSync نیز استفاده کرد. این تابع به همان شکل کار می‌کند، اما بدون نیاز به callback است. در صورتی که در هنگام ایجاد پوشه خطایی رخ دهد، خطا به صورت مستقیم پرتاب می‌شود و برنامه متوقف می‌شود. ```javascript const fs = require('fs'); try { fs.mkdirSync('path/to/directory'); console.log('پوشه با موفقیت ایجاد شد.'); } catch (err) { console.error(err); } ``` استفاده از تابع fs.mkdirSync به‌جای تابع fs.mkdir مناسب است وقتی که بخواهیم برنامه به صورت سنکرون اجرا شود و تا زمان ایجاد پوشه متوقف شود. ## مسائل رایج و خطاهای ممکن در حین استفاده از دستور fs.mkdir در Node.js، ممکن است با خطاهای مختلفی مواجه شوید. برخی از مسائل رایج و خطاهای ممکن در زیر آورده شده است: 1. **ENOENT**: این خطا رخ می‌دهد وقتی که مسیر والد برای ایجاد پوشه وجود ندارد. 2. **EEXIST**: اگر پوشه‌ای با نام مشابه قبلاً وجود داشته باشد، این خطا رخ می‌دهد. 3. **EACCES**: این خطا رخ می‌دهد وقتی که برنامه به مجوز لازم برای ایجاد پوشه دسترسی ندارد. 4. **ENOTDIR**: این خطا رخ می‌دهد وقتی که مسیری که قرار است پوشه در آن ایجاد شود، به واقع یک فایل است. با درک این خطاها و روش‌های برخورد با آنها، می‌توانید به‌روزرسانی‌های لازم را انجام دهید و از ایجاد پوشه‌های خطا‌دار جلوگیری کنید. ## پرسش‌های متداول ### آیا می‌توانم چندین پوشه به‌صورت همزمان ایجاد کنم؟ بله، با استفاده از تابع fs.mkdirSync می‌توانید چندین پوشه به‌صورت همزمان ایجاد کنید. در این حالت، هر بار این تابع را با مسیر مورد نظر فراخوانی کنید و تعدادی پوشه به‌صورت همزمان ایجاد خواهند شد. ### آیا می‌توانم پوشه‌های داخلی (nested) نیز ایجاد کنم؟ بله، با استفاده از تابع fs.mkdirSync می‌توانید پوشه‌های داخلی (nested) نیز ایجاد کنید. برای این کار، مسیر کامل پوشه‌ها را با استفاده از / جداکنید. ### چگونه می‌توانم مجوزهای پوشه را تغییر دهم؟ برای تغییر مجوزهای یک پوشه در Node.js، می‌توانید از تابع fs.chmod استفاده کنید. این تابع به شما امکان می‌دهد مجوزهای پوشه را به صورت برخط تغییر دهید. ### آیا می‌توانم پوشه‌های خالی را حذف کنم؟ بله، با استفاده از تابع fs.rmdir می‌توانید پوشه‌های خالی را حذف کنید. اما توجه داشته باشید که این تابع فقط برای حذف پوشه‌های خالی قابل استفاده است و در صورت وجود فایل یا زیرپوشه درون پوشه، خطا رخ می‌دهد. ### آیا می‌توانم پوشه‌های غیر‌خالی را حذف کنم؟ بله، برای حذف پوشه‌های غیر‌خالی در Node.js می‌توانید از تابع fs-extra.remove استفاده کنید. این تابع به شما امکان می‌دهد پوشه‌های غیر‌خالی را به‌صورت بازگشتی حذف کنید. ## نتیجه‌گیری در این مقاله، با دستور fs.mkdir در Node.js آشنا شدیم. این دستور به ما اجازه می‌دهد تا به راحتی پوشه‌های جدیدی در سیستم فایل ایجاد کنیم. همچنین مشکلات و خطاهای ممکن در استفاده از این دستور را نیز بررسی کردیم. با استفاده از این دستور به درستی و با توجه به مسائل امنیتی، می‌توانیم پوشه‌های مورد نیاز خود را به‌روزرسانی و مدیریت کنیم.