طريقة رفع المشاريع على Heroku

رابط الموقع: https://id.heroku.com/login


مصدر هام:
https://medium.com/weekly-webtips/deploying-a-nestjs-app-with-heroku-5fa84cb5b6c6


فيديوهات هامة:








إعداد مشروع nestJs للرفع على سيرفر Heroku

الخطوة الأولى: نذهب إلى ملف main.ts من ثم نضيف السطر أو نعدل السطر السادس أدناه


الخطوة الثانية: إضافة السطر ٢٢ في ملف package.json في كائن scripts

الخطوة الثالثة: إنشاء ملف جديد باسم Procfile في جذر المشروع مع إضافة الكود أدناه في داخله

web: npm run start:prod

الخطوة الرابعة: الذهاب إلى علامة تبويب Settings في مشروعك على Heroku من ثم النزول إلى الأسفل إلى أن تصل إلى عبارة "تكوين المتغيرات (Config Vars)" بعد ذلك اضغط على "Reveal Config Vars" وقم بإنشاء المتغيرات التالية:

NODE_ENV: production
NPM_CONFIG_PRODUCTION: false

الخطوة الأخيرة: ارفع كل التعديلات على GitHub من ثم قم بالذهاب إلى علامة تبويب Deploy ومن ثم اربط مشروعك على GitHub بتطبيقك على Heroku ولا تنسى الضغط على زر النشر الموجود في تذييل علامة تبويب Deploy


لكي يتم تحديث مشروعك بشكل تلقائي عندما ترفع أي شيء جديد على GitHub قم بالضغط على الزر أدناه:
وللنشر على الإنترنت الآن قم بالضغط على هذا الزر:







إنشاء قواعد البيانات التابعة لـ Postgres على Heroku


الخطوة الأول: اضغط على أيقونة المربعات الموجودة في الزاوية اليمنى من الصفحة ثم قم بالضغط على زر Data


أو

















الخطوة الثانية:  اضغط على زر Create one الموجود في بطاقة Heroku Postgres



الخطوة الثالثة: وهي بعد إنشاء قاعدة بياناتك وربطها بالمشروع ستقوم بفتح علامة التبويب Settings ومن ثم ستفتح بيانات الاعتماد الخاصة بقاعدة بياناتك الجديدة وانتبه فهذه البيانات حساسة ولا تجب مشاركتها مع الآخرين على وجه الإطلاق





الخطوة الرابعة: سننظر إلى معلومات الاعتماد وسننسخ كود الـ URI منه.


الخطوة الخامسة: سنتحقق من أنّ رابط الـ URI موجود في متغيرات التكوين في مشروعنا الأساسي على Heroku



تنويه قبل إجراء الخطوة الأخير يجب عليك تثبيت الـ TypeOrm للـ Postgers

 npm install --save @nestjs/typeorm typeorm pg




الخطوة الأخيرة: إعدادقاعدة البيانات على كودك في nestJs بهذه الطريقة أدناه

@Module({
imports: [
TypeOrmModule.forRoot({
type: 'postgres',
host: 'your_host',
port: 5432,
username: 'your_username',
password: 'your_password',
database: 'your_database',
ssl: {
require: true, // This will help you. But you will see nwe error
rejectUnauthorized: false // This line will fix new error
},
entities: [],
synchronize: true,
}),
],
controllers: [AppController],
providers: [AppService],
})


حل مشكلة (error Node version not specified in package.json in nestjs with heroku):

  1. Open your package.json file.
  2. Add the "engines" field at the top level of the file, like this:
    "engines": {
      "node": "14.x"
    }
    
    Replace "14.x" with the desired Node version you want to use. You can specify a specific version like "14.17.6" or use a range like "14.x" to allow any version in the 14.x range.
  3. Save the package.json file.


حل مشكلة node:internal/modules/cjs/loader:998 in nestjs

For All => Windows, Linux, Mac

  1. Delete the node_modules directory
  2. Delete the package-lock.json file
  3. Run npm install
  4. Run npm start

For Linux

rm -rf node_modules package-lock.json && npm install && npm start





مصادر حل مشكلة (self signed certificate):

https://blog.bitsrc.io/how-to-generate-and-use-an-ssl-certificate-in-nodejs-72491dcee7c2


مع تحيات محبكم:

م. عبدالله السالم







تعليقات

المشاركات الشائعة من هذه المدونة

ngx-extended-pdf-viewer

how to getting access token for https://fcm.googleapis.com/v1/projects/al-ayahya-co/messages:send for angular and backend nestjs

طريقة تفعيل زر Inline Keyboard في Telegram Bot