بادئ ذي بدء، يجب أن أعترف أنني كمطور Java ولدي أكثر من عشر سنوات من الخبرة في التطوير، فقد قمت بتشكيل إجراءات متأصلة لحل معظم المشكلات، على الرغم من أنها غالبًا ما تبدو مرهقة ومرهقة. على سبيل المثال، إذا كنت تريد قراءة ملف، فيجب عليك تهيئة مثيل BufferedReader وتمرير FileReader. وهذا أمر منطقي تقريبًا. لقد كتبت مثل هذا الكود في العديد من المشاريع التي أعتبرها "على مستوى المؤسسة" واستمتع بها كثيرًا كثيرًا، يمكن القول إنني مجرد متعصب لجافا ويحتقر اللغات الأخرى.
إذا كنت تقرأ منشور المدونة هذا، فربما وقعت في سوء فهم وقعت فيه منذ سنوات عديدة، كمطور مؤهل، يجب عليك تعلم التقنيات الجديدة باستمرار واختيار التقنيات المناسبة بناءً على احتياجات العمل الفعلية. على الرغم من أنني تقدمت في السن وقد أتعب يومًا ما من Java. لكنني اكتشفت شيئًا جديدًا مثيرًا الآن، فإن Node.js يشبه طفلًا يحصل على لعبة جديدة بالنسبة لي، في منشور المدونة هذا سأوضح لك أولاً كيفية إنشاء راحة بسيطة باستخدام خدمة Java EE لقراءة قاعدة بيانات MongoDB. ثم سأستخدم Node.js لتحقيق نفس الوظيفة، وسوف تفهم بسهولة أكبر الإثارة في لغة التطوير الجديدة هذه.
ابدأ بالأساسيات – ما هو Node.js؟
أولاً، أريد أن أوضح أن Node.js ليست لغة "عصرية" يستخدمها "الأشخاص العصريون" فقط. على الرغم من أنها بدأت بهذا الفهم، إلا أنه يسعدني أن أبلغكم أن Node.js هي لغة ناضجة - وفي عصر الإنترنت الحالي، وجدت طريقها إلى المؤسسات الكبيرة لتشغيل بعض مواقع الويب ذات أعلى حركة مرور. Node.js هي أداة مفيدة جدًا في مجموعة مهاراتك وستفاجئك بمدى سهولة إنشاء تعليمات برمجية مستقرة وآمنة وعالية الأداء.
باختصار، Node هي لغة للأنشطة من جانب الخادم. يستخدم لغة جافا سكريبت، وهناك العديد من المكتبات المتاحة، مثل نماذج npm. يمكنك مقارنة نماذج npm هذه بحزم .jar في Java. عندما تحتاج إلى جزء من الوظيفة ولا ترغب في كتابة كل التعليمات البرمجية بنفسك، فمن المحتمل أن الميزة التي تبحث عنها متوفرة بالفعل في نموذج npm.
عادةً ما يتم تنفيذ تطبيقات العقدة لتحقيق أقصى قدر من الكفاءة من خلال الاستفادة من عمليات الإدخال/الإخراج غير المحظورة والأحداث غير المتزامنة. الشيء الوحيد الذي يحتاج مطورو Java إلى معرفته هو أن تطبيقات Node تعمل في سلسلة رسائل واحدة. ومع ذلك، يستخدم رمز العقدة الخلفية مؤشرات ترابط متعددة لعمليات مثل الوصول إلى الشبكة والملفات. لهذا السبب، تعتبر Node مثالية للتطبيقات التي تتطلب خبرة في الوقت الفعلي.
متابعة - دعم IDE
قد تكون مثلي و"تعيش" و"تتنفس" في IDE. قد يكون هذا بسبب حقيقة أن Java كثيرة الكلام وتتطلب منا كتابة تعليمات برمجية ثابتة لإكمال الوظائف أثناء عملية تطوير البرنامج. بمجرد أن اكتشفنا فوائد إكمال التعليمات البرمجية، تعلمنا ببطء استخدام IDE لإدارة الملفات وتصحيح الأخطاء وغيرها من الميزات المفيدة جدًا. يكفي أن أقول إنني أحب استخدام IDE وأستمر في استخدامه عند العمل مع Nodeb. فيما يلي الدفعة الأولى من IDEs التي تدعم العقدة حاليًا:
1. Eclipse - من المفترض أن يكون من السهل البدء بهذا إذا كنت تستخدمه بالفعل في Java. فقط قم بتثبيت البرنامج المساعد Node.js.
2.JetBrains IntelliJ IDEA - بيئة تطوير متكاملة تجارية تحظى بشعبية كبيرة. هذا هو IDE المفضل لدي حتى الآن.
3.Microsoft Visual Studio – نعم، لقد قرأت ذلك بشكل صحيح. لقد نمت العقدة إلى الحد الذي أضافت فيه Microsoft دعمًا أصليًا لها في Visual Studio. هذا التنفيذ مستقر جدًا وVS هو ثاني بيئة تطوير مفضلة لدي. ومن الغريب أنني أستخدم VS فقط لبعض مشاريع العقدة الأساسية.
4.CodeEnvy - بيئة تطوير متكاملة (IDE) قائمة على الويب
5.Cloud9 - بيئة تطوير متكاملة (IDE) قائمة على الويب
6.SublimeText 2 - محرر نصوص بسيط أصبح يتمتع بشعبية متزايدة بين المطورين نظرًا لطبيعته خفيفة الوزن.
هذه بعض بيئة التطوير المتكاملة (IDEs) المفضلة لدي للعمل على المشاريع المستندة إلى العقدة. مجرد مثال.
ابدأ بمثال
في الجزء المتبقي من منشور المدونة هذا، سنقوم بإنشاء خدمة REST بسيطة باستخدام Java EE وNode.js. ستقوم خدمة REST هذه ببساطة بقراءة المعلومات من قاعدة بيانات MongoDB وإرجاع النتائج إلى الطالب. إن تثبيت وتكوين خادم تطبيق Java وقاعدة بيانات MongoDB يقع خارج نطاق هذه المقالة.
إنشاء تطبيق جافا لدينا
الخطوة 1: تكوين ملف pom.xml
دعنا نسمي هذا المثال بـ reexample، وسأستخدم خادم تطبيقات JBoss EAP. أول شيء يتعين علينا القيام به هو تكوين ملف pom.xml الخاص بنا لإدارة التبعية باستخدام نظام البناء Maven. ما يلي هو ملف pom.xml الذي يحتوي على التبعيات المطلوبة في تطبيقنا لإعادة النموذج:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http:/ /maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>restexample</groupId> <artifactId>restexample</artifactId> <packaging>الحرب</packaging> <version>1.0</version> <name>restexample</name> <repositories> <repository> <id>eap</id> <url>http://maven.repository.redhat.com/techpreview/all</url> <releases> <enabled>صحيح</enabled> </releases> <snapshots> <enabled>صحيح</enabled> </snapshots> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>eap</ معرف> <url>http://maven.repository.redhat.com/techpreview/all</url> <releases> <enabled>صحيح</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </pluginRepository> </pluginRepositories> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven .compiler.source>1.6</maven.compiler.source> <maven.compiler.target>1.6</maven.compiler.target> </properties> <dependeency> <dependency> <groupId>org.jboss.spec</groupId> <artifactId>jboss-javaee-6.0</artifactId> <version>3.0.2.Final-redhat-4</version> <type>pom</type> <scope>مقدم</scope> </dependency> <dependency> <groupId>org.mongodb</groupId> <artifactId>mongo-Java-driver</artifactId> <version>2.9.1</version> </dependency> </dependeency> </project>
رائع، ومفصل تمامًا، ولكن أتمنى أن تتمكن من فهم الكود في منشور المدونة هذا، أفترض أن القراء يعرفون Java بالفعل، لذلك لن أشرح التفاصيل.
الخطوة 2: قم بإنشاء ملف Beans.xml وقم بإعداد تعيين servlet الخاص بنا
كجزء من المثال، سوف نستخدم CDI (حقن تبعية السياق) في فئة الوصول إلى قاعدة البيانات الخاصة بنا. وفقًا لتعليمات تكوين CDI الرسمية، إذا أراد أحد التطبيقات استخدام CDI، فيجب أن يتضمن ملف Beans.xml في دليل WEB-INF الخاص بالتطبيق. لذلك دعونا ننشئ هذا الملف ونقوم بتكوينه بالمعلومات التي نحتاجها. انتقل إلى دليل /src/main/webapp/WEB-INF وقم بإنشاء ملف Beans.xml وأضف الكود التالي:
<?xml version="1.0"?><beans xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema- مثيل" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://jboss.org/schema/cdi/beans_1_0.xsd"/>
نحتاج أيضًا إلى إعداد تعيين servlet لواجهة برمجة التطبيقات RESI الخاصة بنا في ملف web.xml. أضف عنصر تعيين servlet التالي إلى الملف الموجود في الدليل /src/main/webapp/WEB-INF:
<servlet-mapping> <servlet-name>javax.ws.rs.core.Application</servlet-name> <url-pattern>/ws/*</url-pattern></servlet-mapping>
الخطوة 3: إنشاء فئة DBConnection
في هذه المرحلة، قمنا بإعداد المشروع ويحتوي ملف pom.xml الخاص بنا بالفعل على تبعيات برنامج التشغيل لقاعدة بيانات MongoDB. تذكر التأكد من تجميع برامج التشغيل المطلوبة في تطبيقنا. الشيء التالي الذي يتعين علينا القيام به هو إنشاء فئة لإدارة اتصال قاعدة البيانات. أنشئ ملفًا جديدًا باسم DBConnection.java، ثم ضع هذا الملف في الدليل /src/main/Java/com/strongloop/data، ثم أضف التعليمة البرمجية التالية إلى هذا الملف:
ملاحظة: تأكد من تكوين تثبيت قاعدة بيانات MongoDB باستخدام تفاصيل ترخيص الاتصال المناسبة!
package com.strongloop.data; import java.net.UnknownHostException; import javax.annotation.PostConstruct; import javax.enterprise.context.ApplicationScoped; import javax.inject.Named; import com.mongodb.DB; @Named@ApplicationScopedpublic class DBConnection { mongoDB public; DBConnection() { super(); } @PostConstruct public void afterCreate() { String mongoHost = "127.0.0.1" String mongoPort = "27001" String mongoUser = "strongloop; String mongoPassword = "rocks"; String mongoDBName = "restexample" ; int port = Integer.decode(mongoPort); null; حاول { mongo = new Mongo(mongoHost, port } Catch (UnknownHostException e) { System.out.println("تعذر الاتصال بـ MongoDB: " + e.getMessage() + " :: " + e. getClass()); } mongoDB = mongo.getDB(mongoDBName); mongoPassword.toCharArray()) == false) { System.out.println("فشل في مصادقة قاعدة البيانات"); } } public DB getDB() { return mongoDB } }الخطوة 4: استيراد البيانات إلى MongoDB (بيرة mmmm)
في مشروعنا نريد تحميل قائمة بجميع أنواع البيرة التي تحمل اسم Pabst. إذا كنت جديدًا في صناعة البيرة، فقد ترغب في تجربة Pabst Brewing's American Light Ale. تتميز هذه البيرة بشرائط زرقاء وتصميمات كولت، وتشمل جميع أنواع مشروبات الشعير.
تحتاج أولاً إلى تنزيل ملف json يحتوي على جميع البيانات التي يجب إرجاعها. يمكنك استخدام عنوان URL التالي لتحقيق ذلك:
https://dl.dropboxusercontent.com/u/72466829/beers.json
بعد التنزيل، استخدم الأمر mongoimport لاستيراده إلى قاعدة البيانات، الأمر كما يلي:
$ mongoimport --jsonArray -d yourDBName -c beers --type json --file /tmp/beers.json -h yourMongoHost --port yourMongoPort -u yourMongoUsername -p yourMongoPassword
يمكنك رؤية النتائج التالية:
متصل بـ: 127.0.0.1:27017الثلاثاء 10 يونيو 20:09:55.436 التحقق من 9 24الثلاثاء 10 يونيو 20:09:55.437 تم استيراد 24 كائنًا
الخطوة 5: إنشاء كائن نموذج Beer
لقد أنشأنا فئة اتصال بقاعدة البيانات وقمنا بتحميل معلومات البيرة في قاعدة بيانات MongoDB. لقد حان الوقت لإنشاء كائن نموذجي للتحكم في معلومات البيرة الخاصة بنا. أنشئ ملفًا جديدًا باسم Beer.java وضعه في الدليل /src/main/java/com/strongloop/data. بعد إنشاء الملف قم بإضافة الكود التالي إليه:
package com.strongloop.data; public class Beer { اسم سلسلة خاص؛ وصف سلسلة خاص؛ public String getId() { return id; getName() { return name; } public void setName(String name) { this.name = name } public String getDescription() { return description } public void setDescription(String description) { this.description = description }}ملاحظة: يحتوي ملف JSON المقدم على المزيد من المعلومات التي سنستخدمها، لذا قم بفحصه وإضافة بعض الوظائف الإضافية إليه لتوسيع تجربة التعلم الخاصة بك.
الخطوة 6: إنشاء خدمة REST
خمن ماذا تفعل؟ حسنًا، نحن جاهزون أخيرًا لإنشاء خدمة ويب تعتمد على REST والتي ستسمح لنا بتحميل معلومات البيرة في الخطوة السابقة. للقيام بذلك، نحتاج إلى إنشاء ملف جديد يسمى BeerWS.java ووضعه في الدليل /src/main/java/com/strongloop/webservice. وبعد إنشائه أضف الكود التالي:
الحزمة com.strongloop.webservice؛ import java.util.ArrayList;import java.util.List;import javax.enterprise.context.RequestScoped;import javax.inject.Inject;import javax.ws.rs.GET;import javax.ws .rs.Path;استيراد javax.ws.rs.Produces;استيراد javax.ws.rs.QueryParam;استيراد com.strongloop.data.DBConnection;import com.strongloop.data.Beer;import com.mongodb.BasicDBObject;import com.mongodb.DB;import com.mongodb.DBCollection;import com.mongodb.DBCursor;import com.mongodb. DBObject @RequestScoped@Path("/beers")public class BeerWS { @Inject public DBConnection dbConnection; public DBCollection getBeerCollection() { DB db = dbConnection.getDB(); DBCollection beerCollection = db.getCollection("beers"); ()؛ theBeer.setName(dataValue.get("name")); theBeer.setDescription(dataValue.get("name")); theBeer.setId(dataValue.get("_id").toString()); // احصل على جميع أنواع البيرة @GET() @Produces("application/json") public List<Beer> getAllBeers() { ArrayList<Beer> allBeersList = new ArrayList<Beer>(); ())); } } أخيرا { cursor.Close() } return allBeersList }}الخطوة 7: تصفح معلومات البيرة السخيفة
أوه، انتهيت. لقد كتبنا خدمة REST يمكنها استرداد جميع معلومات البيرة من قاعدة البيانات. الآن لنشر التعليمات البرمجية الخاصة بك على خادم التطبيق الخاص بك، افتح العنوان التالي في متصفحك لمعرفة ما إذا كان يعمل بشكل جيد:
http://yourserverlocation/ws/beers
إذا كان كل شيء على ما يرام، فسترى قائمة بجميع معلومات البيرة، كما هو موضح أدناه:
إنشاء تطبيق العقدة
إذا اتبعت الخطوات المذكورة أعلاه للبرمجة بلغة Java، فسوف تدرك أنه على الرغم من أن إنشاء التطبيقات باستخدام JavaEE يتقدم بسرعة كبيرة، إلا أنه لا يزال من الصعب جدًا إنشاء تطبيق بسيط مثل خدمة REST. لا تفهموني خطأ، ما زلت أحب استخدام javaEE، لكنني أجد أنه بالنسبة للعديد من السيناريوهات، مثل إنشاء خدمات REST التي ترجع بيانات json، فإن Node أكثر ملاءمة. بعد ذلك، سنقوم بإنشاء خدمة ويب بسيطة باستخدام واجهة برمجة تطبيقات LoopBack الخاصة بـ StrongLoop. بالإضافة إلى ذلك، سأوضح لك كيفية تثبيت Node على Apple OSX.
الخطوة 1: تثبيت العقدة
أسهل طريقة لتثبيت Node هي من خلال حزمة ثنائية متوافقة مع معظم أنظمة التشغيل. افتح متصفحك وقم بزيارة صفحة الويب أدناه لتنزيل الإصدار المناسب وفقًا لنظام التشغيل الخاص بك:
http://nodejs.org/download/
بعد انتهاء التحميل سيظهر لك ما يلي:
إذا كنت تستخدم Mac OSX، فانقر فوق ملف .pkg العام. سيؤدي هذا إلى حفظ برنامج التثبيت على جهاز الكمبيوتر الخاص بك. بعد تنزيل الملف، انقر عليه نقرًا مزدوجًا لبدء برنامج التثبيت، وسيظهر لك مربع حوار التثبيت التالي:
متابعة التثبيت بشكل افتراضي بعد التثبيت الناجح، انقر فوق زر الإغلاق للخروج من برنامج التثبيت.
بسيطة جدا، أليس كذلك؟
الخطوة 2: تثبيت LoopBack باستخدام NPM
الآن بعد أن تم تثبيت Node في النظام المحلي، فإن الخطوة التالية هي تثبيت حزمة LoopBack المقدمة من StroopLoop. LoopBack عبارة عن حزمة تعليمات برمجية مفتوحة لواجهة برمجة التطبيقات (API) عندما تتعلم استخدام Node لتطوير البرامج ونشرها، يمكن لـ LoopBack أن يجعل البرمجة أسهل.
لتثبيت LoopBack، سنستخدم سطر أوامر npm، وهو جزء من لغة Node الأساسية. NPM هي أداة رسمية لإدارة الحزم تُستخدم لتثبيت مكتبات الفئات أو القوالب التي تعتمد عليها التطبيقات. إذا كنت مبرمج جافا، فيمكنك مقارنة NPM بـ Maven. باستخدام Maven لبناء مشروع، يمكن للمطورين تكوين حزم الجرة أو القوالب التي يعتمد عليها المشروع في pom.xml. عندما يبدأ المشروع في التجميع، سيقوم Maven بتنزيل جميع الملفات التابعة وإدخال حزمة الجرة في المشروع. يعمل NPM بنفس طريقة Maven بالنسبة لبعض المشاريع الخاصة، فهو يستخدم ملف package.json لتكوين الملفات التي يعتمد عليها المشروع. يمكنك أيضًا استخدام سطر الأوامر لتنزيل الملفات التابعة إلى النظام المحلي. إذا لم تفهم ذلك، فلا تقلق، فسنقوم بوصف ملف package.json بالتفصيل في الخطوات التالية.
لتثبيت LoopBack، نستخدم سطر أوامر بسيطًا لتنزيل جميع الملفات التابعة وتثبيتها. افتح نافذة سطر أوامر نافذتك وأدخل الأمر التالي:
تثبيت $ npm -g strongloop
نصيحة: أثناء التثبيت، قد تحتاج إلى استخدام حساب مستخدم آخر لتنفيذ هذا الأمر.
ماذا يعني سطر الأوامر هذا؟ تخبر المعلمة -g npm بأننا نريد تثبيت حزمة strong-cli. تجعل المعلمة -g هذه الحزمة متوافقة مع أي نظام أو تطبيق. بمجرد تشغيل الأمر أعلاه، سيقوم NPM بتنزيل جميع الملفات التابعة. يعتمد وقت التنزيل على سرعة الإنترنت لديك وقد يستغرق عدة دقائق.
الخطوة 3: إنشاء التطبيق
يعد إنشاء تطبيق باستخدام LoopBack API أمرًا بسيطًا. افتح نافذة سطر أوامر نافذتك واستخدم الأمر التالي لإنشاء نموذج جديد للتطبيق.
الاسترجاع $slc
وبعد ذلك سيطالبك باسم المسار الجذري للمشروع. في هذا المثال، يتم استخدام Restexample. بعد ذلك سيطالبك باسم التطبيق. استخدم النموذج الافتراضي.
قام الأمر slc الآن بإنشاء تطبيق LoopBack باسم Restexample وقام بتكوين التطبيق. إذا قمت بتنفيذ الأمر أعلاه مرة أخرى ومازلت تستخدم Restexample لتسميته، فسيقوم LoopBack بإنشاء دليل جديد. يمكنك استخدام الأمر cd لتعديل المسار الجذر للتطبيق.
$ قرص مضغوط كمثال
الآن بعد أن أنشأنا تطبيقًا، نقوم بتكوين MongoDB كمصدر بيانات للتطبيق.
الخطوة 4: تحديد مصدر البيانات
للاتصال بـ MongoDB، نحتاج إلى إضافة مصدر بيانات إلى التطبيق وتشغيل الأمر التالي:
الاسترجاع $ SLC: مصدر البيانات
في النافذة المنبثقة، يمكنك إدخال أي اسم مصدر بيانات مخصص. هنا، اختر myMongo
[؟] أدخل اسم مصدر البيانات: myMongo
بهذه الطريقة نربط تعريف مصدر بيانات الواجهة الخلفية بموصل حقيقي مدعوم من StrongLoop. هنا نختار موصل MongoDB من القائمة.
[؟] حدد الرابط لـ myMongo:PostgreSQL (بدعم من StrongLoop)Oracle (بدعم من StrongLoop)Microsoft SQL (بدعم من StrongLoop)MongoDB (بدعم من StrongLoop) خدمات الويب SOAP (بدعم من StrongLoop) خدمات REST (بدعم من StrongLoop)Neo4j ( مقدمة من المجتمع) (تحرك لأعلى ولأسفل للكشف عن المزيد من الخيارات)
الخطوة 5: أشر إلى مصدر البيانات الحقيقي
للاتصال بـ MongoDB، نحتاج إلى الإشارة إلى مثيل MongoDB الفعلي. يحدد LoopBack جميع معلومات تكوين مصدر البيانات في ملف datasource.json. هذا الملف موجود في الدليل الجذر/الخادم للتطبيق يضيف MongoDB مصدر بيانات كما يلي:
{ "db": { "name": "db"، "connector": "memory" }، "myMongo": { "name": "myMongo"، "connector": "mongodb" "url": "mongodb: //المضيف المحلي:27017/restexample" }}ملاحظة: تأكد من توفير عنوان URL الصحيح للاتصال بقاعدة بيانات MongoDB. في هذا المثال، قمت بإنشاء قاعدة بيانات باسم Restexample، والتي يتم استخدامها كمصدر للبيانات.
الخطوة 6: استيراد البيانات إلى MongoDB (بيرة mmmmmm)
كما هو مذكور في جزء Java من هذه المقالة، نحتاج إلى تحميل مجموعة البيانات في قاعدة بيانات MongoDB. إذا كنت قد أكملت هذه الخطوة وفقًا للطريقة المذكورة في هذه المقالة، ثم تخطط لاستخدام نفس قاعدة البيانات، فيمكنك تجاهل الخطوة 6 وانتقل مباشرة إلى الخطوة 7.
أولاً، تحتاج إلى تنزيل ملف JSON يحتوي على جميع المعلومات المراد إرجاعها، والتي يمكن الحصول عليها من عنوان URL التالي:
https://dl.dropboxusercontent.com/u/72466829/beers.json
بعد تنزيل ملف مجموعة البيانات، استخدم الأمر mongoimport التالي مباشرةً لتحميله في قاعدة البيانات:
$ mongoimport --jsonArray -d yourDBName -c beers --type json --file /tmp/beers.json -h yourMongoHost --port
يجب أن ترى النتائج التالية:
متصل بـ: 127.6.189.2:27017الثلاثاء 10 يونيو 20:09:55.436 التحقق 9 24الثلاثاء 10 يونيو 20:09:55.437 تم استيراد 24 كائنًا
الخطوة 7: إنشاء نموذج البيرة الخاص بنا
في عالم Java، يمكننا التفكير في نموذج الكائن، وهو يمثل هذا الكائن، ولكن هنا، يوفر LoopBack طريقة بسيطة لإنشاء كائنات نموذجية من خلال سطر الأوامر. أدخل الأمر التالي:
استرجاع $ slc: نموذج
سيؤدي هذا إلى فتح جلسة تفاعلية لتحديد النموذج. أول شيء تحتاج إلى إدخاله هو اسم النموذج، أدخل "بيرة" هنا. بعد ذلك، ستتم مطالبتك بمصدر البيانات الذي يجب إرفاق هذا النموذج به. هنا، حدد مصدر بيانات myMongo الذي تم إنشاؤه مسبقًا.
[؟] أدخل اسم النموذج: beer[?] حدد مصدر البيانات لإرفاق البيرة به:db (memory)myMongo (mongodb)
بعد ذلك، سيطالبك بكشف واجهة برمجة التطبيقات هذه من خلال REST. بالطبع، نأمل ذلك هنا.
[؟] فضح البيرة عبر REST API نعم؟
أخيرًا، حدد اسم جمع الشبكة للنموذج هنا يُسمى النموذج beer، لذا فإن الجمع هو Bean (افتراضي).
[؟] صيغة الجمع المخصصة (المستخدمة لإنشاء عنوان URL لـ REST):
بعد ذلك، سيُطلب منك تحديد خصائص النموذج. في هذا البرنامج النموذجي، نركز على اسم ووصف البيرة.
أدخل اسم خاصية فارغًا عند الانتهاء.[؟] اسم الخاصية: الاسم
طالما قمت بالضغط على Enter، سيُطلب منك إدخال نوع البيانات لكل سمة محددة، العنصر الأول هو الاسم، هنا حدد نوع السلسلة، ثم اضغط
أدخل.[؟] نوع الخاصية: (استخدم مفاتيح الأسهم)stringnumberbooleanobjectarraydatebuffergeopoint(other)
بعد ذلك، قم بإنشاء سمة الوصف بنفس الطريقة، وبعد ذلك سيُطلب منك إدخال نوع البيانات وهو أيضًا نوع سلسلة، وحدد خيار السلسلة، ثم انقر فوق
أدخل. لنضيف خاصية بيرة أخرى. أدخل اسم خاصية فارغًا عند الانتهاء. [؟] اسم الخاصية: descriptioninvoce loopback:property[?] نوع الخاصية: string[?] هل هو مطلوب؟
تهانينا! لقد أكملت إنشاء كائنات النموذج باستخدام LoopBack مع Node. إذا كنت تريد رؤية ما تم إنشاؤه بالفعل أثناء هذه العملية، فيمكنك فتح ملف beer.json الموجود في الدليل الجذر/المشترك/النماذج للتطبيق والتمرير إلى في نهاية الملف سيظهر لك النموذج التالي:
{ "name": "beer"، "base": "PersistedModel"، "properties": { "name": { "type": "string"، "required": true }، "description": { "type" : "string"، "required": true } }، "validations": []، "relations": {}، "acls": []، "methods": []}كما ترون هنا، قمنا بإنشاء نموذج، وفي الوقت نفسه، تم تخصيص سمات الاسم والوصف لهذا النموذج.
في الملف /server/model-config.js، يمكنك ملاحظة أن الملف يحتوي على بعض الحقول الإضافية، بما في ذلك الحقل العام ومصدر البيانات، ويحدد الحقل العام أننا نريد كشف هذا النموذج للخارج من خلال خدمة شبكة REST الحقل هو تحديد مصدر البيانات الذي سيتم استخدامه لعمليات CRUD في هذا النموذج.
"beer": { "dataSource": "myMongo"، "public": صحيح }الخطوة 8: استمتع بفرحة رؤية البيرة
تهانينا! لقد قمت بإنشاء تطبيق Node.js الأول الذي يحتوي على خدمة ويب REST التي يمكنها الحصول على معلومات عن البيرة. وأخيرًا، كل ما يتعين علينا فعله هو نشر التطبيق.
ولحسن الحظ، أصبح النشر سهلًا بالفعل، ويمكن تنفيذه عن طريق تنفيذ الأمر التالي في الدليل الجذر للتطبيق:
تشغيل $ SLC
بمجرد تشغيل التطبيق، يمكنك تأكيد ما إذا كان النشر ناجحًا بالانتقال إلى عنوان URL التالي باستخدام متصفحك:
http://0.0.0.0:3000/api/beers
رائع، أليس كذلك؟
يحتوي LoopBack أيضًا على صفحة تتيح لك عرض جميع الخدمات المتاحة للتطبيق، بما في ذلك نموذج Beer وخدمة REST التي أنشأناها. قم بتوجيه متصفحك إلى عنوان URL التالي لعرضه:
http://0.0.0.0:3000/اكسبلورر
بعد تحميل الصفحة بنجاح، سترى الواجهة التالية لقد أنشأنا عقدة الفول كجزء من المدونة وقمت بتمييز نقطة النهاية /beers:
يمكنك النقر على /beers لتوسيع واجهات برمجة التطبيقات المتاحة، ويمكنك تشغيلها واختبارها، كما هو موضح في الشكل أدناه:
ختاماً
في منشور المدونة هذا، أوضح كيفية استخدام Java EE لإنشاء خدمة REST التي تقوم بإرجاع بيانات قائمة منتجات البيرة من شركة Pabst Beer. لاحقًا، استخدمت Node.js وإطار عمل الاسترجاع المبني على Node.js لتنفيذ الخدمة المتبقية بنفس الوظيفة باستخدام القليل جدًا من التعليمات البرمجية. الشيء الأكثر أهمية هو أن LoopBack API يوفر أيضًا تطبيقًا افتراضيًا لإضافة وحذف وفحص وتعديل كيانات البيرة، حتى نتمكن من الحصول على خدمة الراحة مع وظائف الإضافة والحذف والتحقق والتعديل الكاملة دون كتابة سطر واحد من الكود.
تقارن القائمة التالية بين ميزات javaEE وnode.js المذكورة في منشور المدونة:
ميزة | جافا إي | Node.js |
دعم IDE الكامل | نعم، تتوفر العديد من بيئات التطوير المتكاملة (IDEs)، بما في ذلك Eclipse وSublime وIdea | نعم، عدة بيئات تطوير متكاملة للاختيار من بينها، Visual Studio، Eclipse، Sublime |
إدارة التبعية | مخضرم | الآلية الوقائية الوطنية |
تستخدم من قبل المشاريع على مستوى المؤسسة | نعم | نعم |
نظام بيئي مكون واسع | نعم | نعم |
يتطلب JVM | نعم | لا |
إطار التنمية المشترك | الربيع، جي | يعبر |
دعم قاعدة البيانات | نعم | نعم |
إطار عمل ORM | نعم | نعم |
إطار الاختبار | نعم | نعم |
ما هي الخطوة التالية؟
سيجلب الإصدار 0.12 القادم من Node 8 ميزات جديدة ومثيرة على الأقل، فماذا ستكون؟ قم بزيارة صفحة "ما الجديد في Node.js v0.12" لمعرفة المزيد.
هل أنت مهتم بالتدريب والشهادات المتعلقة بالعقدة؟ تقدم StrongLoop مجموعة متنوعة من الخدمات لتلبية احتياجاتك.