استقرار NestJS در کنسول پاستا؛ اجرای نمونه رسمی، تنظیم فرمان اجرا، پورت و بررسی سلامت، نگهداری داده و رفع خطاهای رایج.
پیش از شروع
- حساب فعال و دسترسی ساخت پروژه در فضای کاری داشته باشید. از داده آزمایشی استفاده کنید.
- نام پروژه، ناحیه، منابع و هزینه را پیش از تأیید نهایی بررسی کنید. کلیدها و رمزها را فقط در تنظیمات خصوصی کنسول وارد کنید.
نمونه و فایلهای لازم
مشاهده فایلهای نمونه NestJS؛ فایلهای اصلی: package.json، tsconfig.json و src/main.ts. فرمان زیر کل مخزن را دریافت میکند؛ پوشه این آموزش nestjs است.
git clone https://github.com/Paasta-Cloud/examples.git
cd examples/nestjsساخت نمونه با tsc انجام میشود و خروجی dist/main.js دارد؛ اسکریپت start:prod همین فایل را اجرا میکند.
در bootstrap از PORT و آدرس 0.0.0.0 استفاده کنید. وابستگیهای Nest موردنیاز اجرا باید در dependencies باشند.
ساخت پروژه از کنسول
- در کنسول «ساخت اپلیکیشن» را باز کنید و منبع
Gitیا آپلود سورس را انتخاب کنید. - برای
Git، مخزنexamplesو شاخهmainرا انتخاب کنید و پوشه پروژه درMonorepoراnestjsقرار دهید. برای آپلود، فقط محتوای همان پوشه را بفرستید؛node_modules،.venvو خروجی ساخت محلی لازم نیستند. - نتیجه بررسی سورس را بخوانید. اگر مخزن را برای پروژه خودتان
forkکردهاید، اتصالGitباید به همان مخزن دارای تغییرات اشاره کند. - در تنظیمات اجرا، پورت 3000 و مسیر سلامت
/healthرا بررسی کنید. فرمان اجرا و متغیرهای موردنیاز را با جدول زیر تطبیق دهید. - پلن، ناحیه، دیسک و هزینه منابع را مرور کنید و ساخت را تأیید کنید. مراحل ساخت و اجرا را در صفحه استقرار دنبال کنید.

فرمانها و تنظیمات نمونه
| تنظیم | مقدار |
|---|---|
| ساخت یا نصب | npm run build |
| اجرا | npm run start:prod |
| پورت داخلی | 3000 |
| مسیر سلامت | /health |
فرمان ساخت را برای شناخت مراحل میبینید؛ پاستا آن را از سورس تشخیص میدهد. override فرمان اجرا فقط وقتی لازم است که فرمان پروژه با نمونه فرق داشته باشد. پورت داخلی باید با پورت واقعی برنامه یکسان باشد؛ پورت رایانه محلی معیار نیست.
بررسی نتیجه
دامنه HTTPS پروژه را باز کنید. نتیجه مورد انتظار نمونه: پاسخ JSON برنامه NestJS.
مسیر /health باید پاسخ موفق بدهد. در لاگ اجرا خطای تکرارشونده نباشد؛ بعد از آمادهشدن برنامه، یک درخواست واقعی و یک refresh را هم بررسی کنید.
curl -i https://YOUR_PROJECT.paasta.app/healthآدرس بالا نمونه است؛ دامنه واقعی را از صفحه پروژه کپی کنید، چون ممکن است دامنه ناحیه داشته باشد.
خطاهای رایج NestJS
Cannot find dist/main.js
rootDir و outDir در tsconfig را با start:prod تطبیق دهید؛ پروژه واقعی ممکن است dist/src/main.js بسازد.
Dependency injection error
ماژول یا provider گزارششده در لاگ را در imports/providers ثبت کنید؛ افزایش منابع این خطا را حل نمیکند.
انتشار نسخه بعدی و داده ماندگار
برای نسخه بعدی از همان پروژه استفاده کنید. فایل موقت داخل برنامه ماندگار نیست؛ داده مهم را در دیتابیس یا دیسک پایدار نگه دارید و قبل از تغییر ساختار داده بکاپ بگیرید. Rollback نسخه برنامه، migration یا داده دیتابیس را خودکار به عقب برنمیگرداند.