خطای ENOENT در نود جی اس
پس از راه اندازی و اجرای برنامه های Node.js می بایست از صحت عملکرد آنها اطمینان حاصل نمایید. ENOENT یک خطای رایج در پروژه های Node.js می باشد.
گاها ممکن است هنگام استفاده از دستور های npm در Terminal خطایی همانند تصویر1 مشاهده نمایید.
.webp)
به طور کلی این خطا نشان دهنده مشکل در مسیر دهی، عدم وجود فایل ها یا اختلال در راه اندازی پروژه است. اولین موردی که می بایست توسط شما بررسی گردد، وجود فایل های اعلامی در مسیر پروژه تان می باشد. برای مثال در تصویر1، خطا به دلیل عدم وجود فایل package.json در مسیر اصلی پروژه رخ داده است.
برای رفع مشکل باید مطابق با دستورالعمل زیر عمل نمایید:
- وارد سی پنل شوید و از بخش "Software" گزینه "Setup Node.js App" را انتخاب نمایید.
.webp)
- در بخش "Web applications" روی گزینه مداد مشخص شده در تصویر3 کلیک کنید.
.webp)
- در صفحه جدید می توانید مسیر دهی اصلی پروژه تان را در بخش "Application root" مشاهده نمایید.
.webp)
- از صفحه اصلی سی پنل وارد File Manager شوید و به مسیر مشخص شده در Application root بروید.
- هم اکنون می بایست از وجود فایل اعلامی اطمینان حاصل نمایید. در تصویر1 خطا به دلیل عدم وجود فایل package.json در مسیر اصلی پروژه می باشد که با قرار دادن این پوشه در مسیر اصلی پروژه خطا رفع خواهد شد.
در موارد دیگر اگر فایل اعلامی موجود است، باید نوشتار فایل ها و مسیر دهی آن ها را بررسی نمایید.
نکته: لاگ های دقیق تری از خطا در File Manager و مسیر زیر قابل مشاهده است.
.npm/_logs
در صورت عدم مشاهده مسیر زیر در هاستتان، باید از آموزش زیر جهت نمایش فایل های مخفی استفاده کنید.
در صورتی که به فایل package.json پروژه دسترسی ندارید تا در مسیر پروژه جایگذاری نمایید، می توانید فایل package.json با کدهای پیش فرض را ایجاد کنید.
برای انجام این کار مراحل زیر را طی نمایید:
- همانند توضیحات قبلی وارد مسیر Setup Node.js App شده و از بخش Web applications پروژه مدنظرتان گزینه ویرایش را انتخاب نمایید. پس از آن در صفحه جدید روی بخش مشخص شده در تصویر 5 کلیک کنید تا ذخیره خودکار آن انجام گردد.
.webp)
- به صفحه اصلی سی پنل بازگردید و از بخش "Advanced" گزینه "Terminal" را انتخاب نمایید.
.webp)
- عبارت کپی شده در تصویر 5 را در Terminal وارد کرده و ENTER را بزنید.
.webp)
- سپس کد زیر را کپی و در Terminal وارد نمایید.
npm init -y
در صورت عدم رفع خطا پس از انجام موارد اعلامی می توانید یک بار پوشه node_modules و package-lock.json را حذف و مجدد نصب نمایید.
- در Terminal پس از ورود به مسیر پروژه همانند تصویر قبل، کدهای زیر را وارد نمایید.
rm node_modules
rm package-lock.json
کدهای فوق جهت حذف پوشه node_modules و package-lock.json می باشند.
- کد زیر را نیز جهت حذف کش nmp در Terminal وارد نمایید.
npm cache clean --force
- جهت نصب مجدد فایل های مورد نیاز، از کد زیر در Terminal استفاده کنید.
npm install
برخی از خطاهای مهم و رایج در Terminal نیز در ادامه توضیح داده خواهند شد.
-
ENOTFOUND
در صورتی که هنگام استفاده از یک دامنه با این خطا مواجه شدید، مشکل به دلیل عدم دسترسی صحیح به دامنه تان رخ داده است. می بایست اتصال دامنه به هاست، صحیح بودن DNS ها و زمان انقضای دامنه را بررسی نمایید.
-
ECONNRESET
این خطا به دلیل قطع ارتباط رخ می دهد. قطعی شبکه و اینترنت، خطا در کدهایتان و … باعث خطای مذکور می شوند.
-
ETIMEDOUT
این خطا به دلیل Timeout شدن درخواست های HTTP یا بسته نشدن صحیح درخواست ها رخ می دهد. در صورتی که زمان مشخصی جهت اجرای درخواست های HTTP در نظر گرفته باشید و در این بازه زمانی درخواست ها به اتمام نرسند یا اگر زمان خاصی برای درخواست های HTTP در نظر نگیرید و برخی از این درخواست ها به درستی بسته نشوند با خطا Timeout مواجه می گردد.
-
ECONNREFUSED
زمانی که می خواهید به سرویس دیگری متصل شوید و سرویس مقصد دسترسی شما را مسدود کند، خطای ECONNREFUSED رخ می دهد. دلایل متعددی برای عدم دسترسی نظیر بلاک بودن IP در مقصد، در دسترس نبودن سرور مقصد و … وجود خواهد داشت که می بایست توسط شما بررسی گردد.
-
ERRADDRINUSE
هنگام استفاده از پورت با این خطا مواجه می شوید. خطای مذکور نشان دهنده این است که پورت انتخابی در برنامه (application) دیگری در حال استفاده می باشد. برای رفع این خطا می توانید پورت مورد استفاده تان را تغییر دهید.