إنشاء وتشغيل مشروع LoopBack
ما هو LoopBack؟
LoopBack هو إطار عمل Node.js مطور بواسطة IBM، مصمم لبناء واجهات برمجة التطبيقات والخدمات المصغرة. يوفر أدوات وميزات قوية تُسهّل على المطورين إنشاء واختبار ونشر واجهات برمجة API. يتبع LoopBack أسلوب التطوير المدفوع بالنماذج (MDD) لإنشاء واجهات RESTful API بسرعة، ويدعم العديد من قواعد البيانات.
الميزات والفوائد الرئيسية لـ LoopBack
- التطوير المدفوع بالنماذج: بإنشاء النماذج، يتم تلقائيًا إنشاء واجهات RESTful API.
- دعم قواعد بيانات متعددة: يدعم قواعد بيانات مثل MongoDB وMySQL وPostgreSQL وMariaDB وغيرها.
- أدوات CLI المتقدمة: توفّر أدوات LoopBack CLI أوامر تساعد في إنشاء وإدارة المشاريع بسهولة.
- ملحقات وإضافات متقدمة: يحتوي على مجموعة كبيرة من الملحقات التي تتيح التكامل مع خدمات ومكتبات الطرف الثالث.
- مصادقة وتفويض المستخدمين المدمجة: يقدم آلية قوية لمصادقة وتفويض المستخدمين.
استخدام LoopBack يساعد المطورين في إنشاء تطبيقات ويب وواجهات API عالية الأداء وقابلة للتوسع بسرعة.
استخدام ServBay لإنشاء وتشغيل مشروع LoopBack
في هذه المقالة، سنستخدم بيئة Node.js المتاحة عبر ServBay لإنشاء وتشغيل مشروع LoopBack. سنستعمل وظيفة "الاستضافة" المقدمة بواسطة ServBay لإعداد خادم الويب، والوصول إلى المشروع عبر الوكيل العكسي.
إنشاء مشروع LoopBack
تثبيت LoopBack CLI
أولاً، تأكد من تثبيت بيئة Node.js الموفرة من قبل ServBay. ثم استخدم الأمر التالي لتثبيت LoopBack CLI عالميًا:
bashnpm install -g @loopback/cli
1تهيئة المشروع
في الدليل الجذري المقترح بواسطة ServBay
/Applications/ServBay/www
، أنشئ مشروع LoopBack جديد:bashcd /Applications/ServBay/www lb4 app servbay-loopback-app
1
2اتبع التعليمات لإدخال اسم المشروع (يفضل تسميته
servbay-loopback-app
)، واختر الخيارات الأخرى حسب الحاجة.تثبيت التبعيات
انتقل إلى دليل المشروع وثبّت التبعيات:
bashcd servbay-loopback-app npm install
1
2
تعديل محتوى المشروع في LoopBack
تعديل ملف
src/controllers/ping.controller.ts
افتح ملف
src/controllers/ping.controller.ts
وعدّل المحتوى ليعرض رسالة "Hello ServBay!" على الويب:typescriptimport {get} from '@loopback/rest'; export class PingController { constructor() {} @get('/ping') ping(): string { return 'Hello ServBay!'; } }
1
2
3
4
5
6
7
8
9
10
الانتقال إلى وضع التطوير
تشغيل خادم التطوير
ابدأ خادم التطوير وحدد المنفذ (على سبيل المثال: 8585):
bashPORT=8585 npm start
1هذا سيبدأ خادم التطوير محليًا ويعرض المنفذ 8585.
إعداد وكيل عكسي في ServBay Host
استخدم وظيفة "الاستضافة" في ServBay للوصول إلى خادم التطوير عبر وكيل عكسي. في إعدادات الاستضافة في ServBay، أضف وكيل عكسي جديد:
- الاسم:
My first LoopBack dev site
- النطاق:
servbay-loopback-test.dev
- نوع الاستضافة:
وكيل عكسي
- IP:
127.0.0.1
- المنفذ:
8585
لمزيد من التفاصيل حول الإعدادات، راجع إضافة موقع تطوير Nodejs.
- الاسم:
الوصول إلى وضع التطوير
افتح المتصفح، وقم بزيارة
https://servbay-loopback-test.dev/ping
لمشاهدة المشروع في الوقت الحقيقي. نظرًا لدعم ServBay لاسم النطاق المخصص وشهادات SSL المجانية، ستتمتع بمزيد من الأمان.
نشر النسخة الإنتاجية
تحضير بيئة الإنتاج
تأكد من أن مشروعك يعمل بشكل صحيح في بيئة الإنتاج. عادةً ما لا يحتاج مشروع LoopBack إلى خطوات بناء خاصة، لكن قد تحتاج إلى إعداد بعض المتغيرات البيئية أو إجراء تعديلات أخرى.
تشغيل خادم الإنتاج
ابدأ خادم الإنتاج وحدد المنفذ (على سبيل المثال: 8586):
bashPORT=8586 NODE_ENV=production npm start
1إعداد وكيل عكسي في ServBay Host
استخدم وظيفة "الاستضافة" في ServBay للوصول إلى خادم الإنتاج عبر وكيل عكسي. في إعدادات الاستضافة في ServBay، أضف وكيل عكسي جديد:
- الاسم:
My first LoopBack production site
- النطاق:
servbay-loopback-test.prod
- نوع الاستضافة:
وكيل عكسي
- IP:
127.0.0.1
- المنفذ:
8586
- الاسم:
الوصول إلى وضع الإنتاج
افتح المتصفح، وقم بزيارة
https://servbay-loopback-test.prod
لمشاهدة النسخة الإنتاجية. عبر اسم النطاق المخصص وشهادات SSL المجانية المقدمة بواسطة ServBay، ستحظى بمزيد من الأمان والثقة.
الاتصال بقاعدة البيانات
يوفر ServBay دعمًا لعدة قواعد بيانات مثل Redis وMariaDB وPostgreSQL وMongoDB. فيما يلي طريقة الاتصال بهذه القواعد.
الاتصال بـ MongoDB
ثبّت
@loopback/connector-mongodb
:bashnpm install --save @loopback/connector-mongodb
1ثم قم بتكوين مصدر البيانات في المشروع:
typescript// src/datasources/mongodb.datasource.ts import {juggler} from '@loopback/repository'; const config = { name: 'mongodb', connector: 'mongodb', url: 'mongodb://localhost/servbay-loopback-app', host: 'localhost', port: 27017, user: '', password: '', database: 'servbay-loopback-app', }; export class MongodbDataSource extends juggler.DataSource { static dataSourceName = 'mongodb'; constructor() { super(config); } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20الاتصال بـ Redis
ثبّت
loopback-connector-redis
:bashnpm install --save loopback-connector-redis
1ثم قم بتكوين مصدر البيانات في المشروع:
typescript// src/datasources/redis.datasource.ts import {juggler}from '@loopback/repository'; const config = { name: 'redis', connector: 'redis', url: 'redis://localhost:6379', }; export class RedisDataSource extends juggler.DataSource { static dataSourceName = 'redis'; constructor() { super(config); } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15الاتصال بـ MariaDB
ثبّت
@loopback/connector-mysql
:bashnpm install --save @loopback/connector-mysql
1ثم قم بتكوين مصدر البيانات في المشروع:
typescript// src/datasources/mariadb.datasource.ts import {juggler} from '@loopback/repository; const config = { name: 'mariadb', connector: 'mysql', url: '', host: 'localhost', port: 3306, user: 'root', password: 'password', database: 'servbay_loopback_app', }; export class MariaDbDataSource extends juggler.DataSource { static dataSourceName = 'mariadb'; constructor() { super(config); } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20الاتصال بـ PostgreSQL
ثبّت
@loopback/connector-postgresql
:bashnpm install --save @loopback/connector-postgresql
1ثم قم بتكوين مصدر البيانات في المشروع:
typescript// src/datasources/postgresql.datasource.ts import {juggler} from '@loopback/repository; const config = { name: 'postgresql', connector: 'postgresql', url: '', host: 'localhost', port: 5432, user: 'user', password: 'password', database: 'servbay_loopback_app', }; export class PostgresqlDataSource extends juggler.DataSource { static dataSourceName = 'postgresql'; constructor() { super(config); } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
بتتبع هذه الخطوات، تكون قد أنشأت وشغّلت مشروع LoopBack باستخدام وظائف ServBay لإدارة والوصول إلى مشروعك والاتصال بقاعد