>> لذلك، مع أن يقال،
مجرد نوع من بسيط مقدمة لنماذج
ونموذج كائن جافا سكريبت.
نحن لن تحول تستعد قليلا للحديث
حول المزيد جافا سكريبت على الخادم والمكتبة رف الكتب
والاتصال مكتبة Knex.
لذلك، يمكنك في الواقع مجرد -
إذا كنت تبحث عن Bookshelf.js وينبغي أن يكون من السهل جدا
العثور عليها، وينبغي أن يكون الأول نتيجة لذلك، ورف الكتب
كما ذكرت للتو ديفيد يعطي الكثير من هيكل
حول الكائنات جافا سكريبت و العمل معهم علائقي
في قواعد البيانات العلائقية.
لذلك، والكثير من ميزات مشابهة الذين في الواقع مستوحاة بشكل كبير
من قبل مكتب إدارة السجلات Laravel كما كذلك Backbone.js،
وهو الأمامية MVC المكتبة التي تسمح لك
لتنظيم التعليمات البرمجية الخاصة بك، على غرار ما كان يظهر
مع أمثلة من النماذج حيث يمكنك -
بدلا من مجرد تعسفا رمي الطبقات
على وجهات نظركم هنا وهناك.
فهو يوفر لك نماذج و مجموعات من تلك النماذج
التي من المفترض أن تكون بمثابة نوع من نقطة واحدة من الحقيقة
حول البيانات ل التطبيق الخاص بك.
ومن ثم يمكنك الاستماع إليها، مثل تلك نماذج التغييرات، ويقول لك، حسنا،
إعادة تقديم هذا القالب هنا وهذا واحد أكثر من هنا
وليس مجرد إضافة فئة هنا، إضافة فئة وهناك نوع من اختيار
على محددات وجعل العنكبوت من التعليمات البرمجية مسج.
أنه يعطي أكثر من الطبقية- هيكل إلى القطع الفردية،
ولكن عنصر مهم من هذه المكتبة هي نماذج
التي لديها بنية مماثلة لماذا نماذج رف الكتب.
لذلك، إذا كنت على دراية رف كنت أيضا جميلة
مألوفة جدا مع Backbone.js النماذج،
وأود أن أوصي نلقي نظرة على هذا.
لذلك، بعض من السمات الرئيسية
أنه يعطي أنت فقط القدرة على تحديد البيانات على كائن
للاتصال جلب، التي بإرجاع سجل الفردية
من قاعدة البيانات، إنشاء العلاقات مماثلة ل
لماذا أنت التعامل في غضون Laravel
حيث يمكنك أقول المريض تعيين طريقة قياسية
وأقول هذا وقد فاز سجل
حيث الكائن المحضر السجلات الصحية اسم الجدول.
دعونا نرى.
لديه العديد من - أنه ينتمي إلى -
فقط الاشياء التي كنت جميلة مماثلة -
مألوفة جدا مع بالفعل، ولكن في جافا سكريبت.
وتحت غطاء محرك السيارة، لرف الكتب،
فإنه يستخدم باني الاستعلام دعا Knex.js.
لذلك، وهذا Knex، knexjs.org.
انها اشارة الى لعبة اذا أي شخص من أي وقت مضى لعبت مع هذا.
ولكن لأنها تتيح لك - في بطريقة مماثلة، لمسج،
كنت مجرد نوع من خلق سلسلة من أساليب مختلفة
ان كنت داعيا الخاص الصف قاعدة البيانات بحيث يمكنك -
كنت بدأت بالقول Knex واسم الجدول.
لذلك، على سبيل المثال، المستخدمين Knex، حدد الأعمدة التي ترغب،
حيث، ويكون فيها مختلفة الشرطية ويمكن أن يكون
وحيث، أو حيث، حيث بين، حيث لم يكن كذلك،
لك الآن، أسفل الخط.
يمكنك تحديد مختلف ينضم بين جداول قاعدة البيانات الخاصة بك
والذي يستخدم رف الكتب داخليا لاقامة نوع من السحر
حول hasOne، hasMany، belongsTo، belongsToMany.
وبالتالي فإن الجمع
من الاثنين تمكنك من القيام جميلة كثيرا ما كنت استخدامها
لفي إطار مثل Laravel من حيث
من وظائف العمل مع قواعد البيانات.
لذلك، دعونا نمضي قدما واتخاذ نظرة على مثال بسيط
للحصول على التطبيق السريع التي يجعل من استخدام هذه النماذج
ومجموعات من رف الكتب الجاز [الصوتية].
لذلك، وأنا قمت بإعداد مجرد تطبيق بسيط هنا.
أنا جردت من بعض الاشياء تم تهيئة صريحة
ونقل هذا إلى الحرف الأول الدليل الذي خلقته.
واحدة من أشياء لطيفة حول العمل مع اكسبرس كما يفترض
لLaravel هو أن هناك حقا لا تنفذ الكثير
عليك اصطلاحية.
حتى تتمكن من إنشاء الدلائل -
أنها لا تعطي حقا لكم مجموعة كبيرة للعمل من خارج.
كنت قد حصلت على مجرد نوع من بعض الإعدادات الأساسية وبعد ذلك -
ولكنه لا يهتم حيث كنت وضعت لهم.
لم يكن لديك لديك الدليل حدة التحكم.
لا تحتاج أن يكون لها نماذج دليل، دليل التكوين.
يمكنك خلق نوع من تلك الاحتياجات كما مشروعك
ووضع الامور على الطريق التي تجعل المعنى الأكثر لك.
وذلك بدلا من وجود جميع هذا المتداول السريع
في app.js الرئيسية قلت للتو متساوين التطبيق تتطلب الحرف الأول / صريح.
وذلك في الحرف الأول،
المجلد تهيئة أنا فقط وقد عبر عن هنا،
ويتطلب هذا إكسبريس، المكالمات وظيفة الإعداد، يدعو -
يضع محرك الرأي، جسون محلل، كل ذلك.
وحتى الآن، دعونا مواصلة السير.
لذلك أنا تتطلب اجتماع مدرس المقرر
ومتطلبات النماذج.
لذلك فان هذه هي في مجلد قررت لمجرد نماذج الاسم.
فإنه ليس من الضروري أن يكون ذلك طريقة ومع ذلك فإنه من المنطقي،
ولكن هو مجرد نماذج جميلة شائعة جدا وأود أن أوصي به.
ولكن - لذا دعونا نذهب للدورة.
أعتقد أنا باستخدام - نعم، والأمثلة
إلى هنا وتستند جميع حول نموذج بالطبع.
لذلك دعونا نلقي فقط نظرة في ذلك.
لذلك، والآن، فقط من السطر الأول من هذا النموذج،
أنا تتطلب بالفعل شيء آخر.
لذلك إذا كنت ستلاحظ في عقدة يجب أن تكون تتطلب
أو وأنت تسير في نهاية المطاف تتطلب مجموعة كاملة
ملفات مختلفة التي تقع
في أماكن مختلفة في التطبيق الخاص بك.
والمسارات النسبية لأينما كنت
في التطبيق الحالي الخاص بك،
إلا إذا كان هو بالفعل أعلى مستوى يعرف بأنه في تثبيته
مع MPM مثل رف الكتب أو Knex أو السريع أو أي شيء،
هذه ليست نسبية.
نعم؟ تكبير أكثر من ذلك؟
موافق. موافق. لذلك، وأنت تسير ل في نهاية المطاف تتطلب مجموعة كاملة
ملفات مختلفة فقط في الخاص رمز، وهو أمر جيد وسيء.
في وسيلة جيدة تعرف أين الامور وانها ليست نوع
من السحر إلى ما هو يجري تحت غطاء محرك السيارة،
التي يمكن أن تكون مربكة حقا
عندما يكون لديك جدا جافا الثقيلة -
أو إطار الثقيلة جدا مثل Laravel التي تقول نوعا ما،
ونحن في طريقنا لرعاية هذا حتى لم يكن لديك
تتطلب كل شيء ولكن لديك
لمعرفة كيف أن كل شيء يعمل من أجل استخدامها.
حيث كما في هذه الحالة، انها واضحة جدا ل
حيث كل شيء، انهم نهايات فقط
الأمر أكثر في الكتابة قليلا.
كما هو الحال في الجانب أود لاستخدام، وهناك المساعد
إذا كنت تستخدم النص أعمى
حيث يمكنك تركيب العقدة وحدات المساعد ويمكنك البدء
لكتابة مثل مدرس و يقوم بإنشاء مسار نسبي
إلى أين أنت على ذلك ملف التعليمات البرمجية، نوع من مفيدة.
لذلك، فإن النموذج بالطبع وتتطلب قاعدة هنا
ثم قاعدة متدربة يتطلب الحرف الأول / رف الكتب
ثم رف الكتب، و يتطلب رف الكتب المستوى الأعلى
ومن ثم تهيئة مع على سبيل المثال Knex تهيئة،
الذي يحدد اسم العميل
والاتصال إعدادات لقاعدة البيانات.
لذلك أنا فقط باستخدام بسيطة مثيل التكملة برو الذي -
من الخلية، وأنا الوصول إليه مع تتمة برو ولها مجرد نوع
قاعدة بيانات مماثلة الإعداد كما كنا
في تطبيق نموذج الأول مع كتالوج بالطبع.
لذلك، أنا وضعت ارتباطي إعدادات هنا،
ويتم توثيق كل هذه على صفحة المشروع Knex.js
عن كيفية الإعداد هذه الاتصالات.
لذلك، لدي الآن بلدي نموذج القاعدة.
وكما ذكرت مع تغيير النموذج،
بحيث يمكن في الواقع أن يكون نوع من الكثير ل-
يضيف الكثير من المتداول إلى التعليمات البرمجية بحيث الاتفاقية
التي تم تكييفها بواسطة Backbone.js
والآن هو Bookshelf.js لإضافة هذا الأسلوب تمديد
كخاصية ثابتة على كائنات جافا سكريبت الخاص بك،
وهو ما يعطيها نوعا من تقريبا طبيعة الإرث الطبقي
حيث في حالة استدعاء تمديد يمكنك إعداد أي
الأساليب النموذج التي ترغب هنا
ومن ثم يمكن لك - أي أساليب ثابتة إضافية
التي قد تريد، يمكن فقط مجموعة منهم أنفسكم
من هنا حتى أتمكن من تمديده مع - حتى إذا كان على سبيل المثال،
نماذج متعددة اللازمة عرض اسم وهذا يحصل الاسم.
لذلك، وهنا، أنا أقول لل اسم العرض لنموذج
افتراضيا هو ما اسمها الخاصية هي إلا عودة
أي اسم.
والآن على كل النموذج الذي هو -
أن يمتد هذا النموذج قاعدة، وأنا لدينا الآن طريقة اسم العرض
على النموذج سلسلة في مكان ما.
وإذا كنت تريد الكتابة عليه يمكنني فقط تعيينها - تعيين ما -
getname سيكون هنا.
ويسمح لك لتقليد الإرث الكلاسيكي
في جافا سكريبت، التي يمكن أن تكون لطيفة خاصة للأشياء
التي تصلح أن تكون فئة استنادا مثل طرازات كائن.
لذلك دعونا القفز مرة أخرى إلى التعليمات البرمجية للتطبيق.
حتى لقد حصلت للتو طريقا خفض، لمجرد مؤشر بلدي
ومن ثم خفض الدورات.
وكلا هذين يدعون طريقة renderCourses.
ذلك مرة أخرى، وظائف هي من الدرجة الأولى ويمكن أن تنتقل
كوسائط لأساليب.
لذلك، في هذه app.get، ادعو -
أنا يمر renderCourses كوسيطة.
وتجعل - أو وظائف يمكن أن يكون الإعداد مثل فار -
كما كنت أفعل في وقت سابق فار renderCourses يساوي ظيفة
أو أنها يمكن أن تكون مجرد renderCourses ظيفة.
لا يجعل جدا الكثير من الفرق.
هل يمكن أن يكون في الواقع ما ويطلق اسم وظيفة
التعبيرات، التي هي renderCourses فار التساوي
renderCourses ظيفة.
و، والسبب أنها تريد أن يكون اسم ظائف ولا سيما
في عقدة هو أنه يعطيك أنظف -
أكثر قابلية للقراءة تتبع المكدس.
حتى إذا كان لديك مجموعة كاملة
وظائف المجهول وسوف أقول -
عندما يكون لديك خطأ اختر مربع الطباعة في التعليمات البرمجية -
فإنك لن تعرف أي وظيفة انها تدعو كنت يجب أن ننظر
في قانون رقم ورقم السطر
وأنه في بعض الأحيان أسهل فقط لتحليل بصريا
عندما يكون لديك أسماء الواقع
لوظائف أنفسهم على جانب الملقم.
لذلك هذا renderCourses، دعونا ندعو تطبيقات عقدة -
لذلك أنا على الاستماع الأساسية 3000 [الصوتية].
وهكذا كل هذا تقوم به الحق هنا هو مجرد الحصول على جميع
دورات من قاعدة البيانات.
أنا لا حتى الاقتصار لذلك يفعل عدد كبير
الصفوف انها العائدين.
ومن أجل القيام بذلك،
على نموذج بالطبع هناك هي خاصية ثابتة
ودعا المجموعة.
وحتى أنا فقط الذي يطلق عليه - أنا وقال إنشاء مجموعة جديدة
لهذه الدورة، ثم جلبه،
ثم يعود الدورات جمع هنا في الوعد.
حتى داخليا، ديفيد عام - و يدرس النصف الأخير قليلا
حول وعود وعود و يستخدم بشكل كبير جدا في كل Knex
ورف الكتب ل فإنه يقرض -
أنها تعطيك القدرة على الحصول على حفنة
مكالمات غير متزامن مختلفة ونوع من الانضمام معا ثم
أو جلب شيء ما، ثم
مع أن مكالمة أخرى استدعاء قاعدة بيانات متزامنة
وتعود تلك القيمة و ثم القفز إلى التالي ثم
والقادم ثم ثم لديها قبض في النهاية لفرز
من تقليد المحاولة متزامنة الصيد السلوك مع رمز غير متزامن،
لأن ترونه الآن
ولكن من أصعب مرة واحدة البدء في التعامل معها.
كود غير متزامن هو فقط في كل مكان
في جانب الملقم جافا سكريبت و حقا إلى درجة أكبر بكثير
من كنت تستخدم للو كنت قد فعلت جافا سكريبت
على جانب العميل.
بحيث حقا، حقا ساعدك هناك.
ولكن فقط لتظهر لك البيان المصحح
التي كنت أتحدث عنها في أدوات مفتش عقدة،
انا ذاهب الى المضي قدما و رمي خط المصحح هنا
في وظيفة renderCourses ونرى فيها أن يقودني
عندما كنت - حتى العقدة يمكن تثبيت مفتش
عن طريق القيام NPM تثبيت مع العلم G،
وهو ما يعني العالمية عقدة المفتش.
وأنها سوف تجلب عليه لNMP وتثبيته على الصعيد العالمي
للتطبيقات الخاصة بك لذلك يمكنك فقط نسميها
من سطر الأوامر.
لقد قمت بالفعل بتثبيت بحيث سأذهب إلى الأمام و-
الواقع أنه قد يكون لننتظر وسوف يستغرق فقط،
تأخذ ثانيتين.
وما مفتش عقدة يسمح لك مرة أخرى
القيام به هو أن يكون هذا مقطوعة الرأس نسخة من وحدة المصحح
أن كنت تستخدم لعند العمل على جانب العميل وتكون قادرة
لوقف، فقط إضافة محدد ويشير في التعليمات البرمجية.
وقف التنفيذ واتخاذ ننظر إلى ما يجري،
الأمر الذي سيكون له حقا تأتي في متناول اليدين إذا ميزة
مثل التي كانت متوفرة
عند التصحيح الخاص كود PHP أنا متأكد.
لذلك دعونا نلقي فقط نظرة في ذلك.
لذلك يمكن أن أدعو فقط عقدة مفتش
وأنه سوف يقول زيارة هذا الرابط منفذ 5858 على بدء التصحيح،
هذا مجرد الافتراضي كيف ليبدأ المباراة.
لذلك، لقد حصلت الآن - هناك لا شيء يحدث هنا
لأنني بحاجة للبدء.
عقدة ذلك المأزق [الصوتية] ل العلم التصحيح ثم app.js.
لذلك يقول المصحح الاستماع على المنفذ 5858،
صريحة الاستماع الخادم على 3000.
لذلك نحن على ما يرام.
اسمحوا لي أن مجرد تحديث هذه.
والآن أستطيع أن أرى app.js التعليمات البرمجية التي كنت تبحث فقط في
ولكن هنا في وحدة التحكم.
وحتى الآن، إذا حاولت تشغيل هذا، يمكنك أن ترى ذلك، فإنه يتوقف.
انها مجرد الانتظار لأن لها تنفيذ التعليمات البرمجية بأكمله الآن
توقفت على هذا المصحح خط أنني قد وضعت في هناك.
ويمكنني الآن الخادم -
[ملاحظة غير مسموع]
أوه، نعم. ما هي الكلمة الرئيسية اختصار لتكبير الشاشة؟
يا هناك.
حصلت عليه. موافق.
[وقفة]
أوه، انها لا تبحث [الصوتية] ذلك.
لذلك، والدورات هي كبيرة حقا
لأنني لا تفعل تحد بند أو أي شيء،
انها مجرد جلب قاعدة البيانات بأكملها من الدورات
التي هي الكثير منهم.
وهكذا - والذي هو كائن
التي قد تحطم فعلا المفتش المثال المذكرة.
هو - موافق.
اسمحوا لي أن تفعل حد و ثم يمكننا أن نلقي نظرة
عندما انها ليست في جلب مئات من الدورات.
لذلك، وقتل الخادم ومفتش
وبالطبع سأفعل الحد الاستعلام جمع 20.
لذلك، في رف الكتب، خلافا لما حدث في Laravel
حيث يمكنك مجرد دعوة تحد مباشر أو استدعاء أي
من هذه الأساليب SQL التي تستخدمها
لمباشرة على سبيل المثال مكتب إدارة السجلات.
في أي وقت أن كنت تستخدم فقط طريقة SQL التي يتم توفيرها
في Knex، لديك ل استدعاء الاستعلام لفرز
من الاستفادة من سلسلة الاستعلام.
وهذا يمكن التذرع مع أي وظيفة،
لذلك يمكنك أن تقول، وظيفة هذا الحد 10 أو كنت اسميها
عن طريق تحديد الذي الطريقة التي ترغب في الاتصال
على سبيل المثال Knex ثم الذي القيمة.
لذلك نحن في طريقنا للقيام لحد 20 ثم تعيين.
لم نفعل ذلك في الواقع تحتاج المصحح هنا
لأننا لا نستطيع فقط تعيين نقاط التوقف
وهذا ما يجعلها أسهل.
حسنا.
لذلك، دعونا تعيين نقطة توقف الحق هنا ومحاولة تحميله.
خط خاطئ.
الحق هنا.
[وقفة]
موافق. لذلك توقفت مرة أخرى.
وحتى الآن، والدورات هي الاعتراض بطول 20
ويمكننا أن نرى جميع مختلفة نماذج أنه المنال
من قاعدة البيانات هنا حتى لقد حصلت على نموذج كائن
التي لديها، داخل سمات الملكية
على كائن هي كل الأشياء أنها وجدت في قاعدة البيانات.
أي أحداث التي لديها تم تسجيل
حتى تتمكن من تسجيل أحداث مختلفة،
على سبيل المثال عندما يتم حذف نموذج
أو عندما يجري المنال،
يمكنك تعيين مختلفة خصائص أو تعديل الأمور.
هناك الكثير من مختلف السنانير ويتم توثيق كل هذه
في Bookshelf.js الوثائق التي تسمح لك
للقيام نوع من أي شيء ان كنت تريد حقا أن تفعل
مع النماذج الخاصة بك والمجموعات.
يمكنك - يعني انهم لتكون قابلة للتخصيص حقا
والسهل حقا ل كنت تكييفها
لاحتياجات الخاصة بك التطبيق.
ولكن مجرد النظر من هنا،
أستطيع أن أرى ما مختلفة تتوفر الدورات.
وفي هذه الحالة، وأنا في الواقع لم تجلب
مع أي بيانات أخرى غير مجرد دورات أنفسهم.
ولكن بطريقة مماثلة ل وبليغ ORM يمكنك تعيين
العلاقات، لذلك مجرى ينتمي إلى العديد من المدرب.
لذلك، إذا كنت المضي قدما و إيقاف التطبيق،
القفز إلى هذا جلب المكالمة، كنت يمكن تحديد خيارات مختلفة
ان كنت ترغب في يمر على طول لذلك.
واحد منهم هو القدرة على تحميل رمز ذات الصلة
عن طريق تحديد withRelated مدربين ثم دورات.
لذلك دعونا نعود وجديدة هذا هنا ووقف مرة أخرى.
وحتى الآن، وجوه الدورات، نفس العدد من النماذج،
ولكن الآن كل نموذج لديه علاقات التجزئة
التي لديها مدربين أنه ذات الصلة ل.
لذلك هذا بالطبع على سبيل المثال
وهو بالطبع 082 اثنين نماذج مدرب ذات الصلة.
ويمكنك أن ترى كيف بالفعل أسهل بكثير وهذا هو لفرز
من يعمل بصريا مع من عندما كنت تتعامل مع الاشياء
أنك نوع من تغيير رمز ثم حاول مرة أخرى في PHP.
حقيقة أنه يمكنك فقط وقف التنفيذ تماما
وتقييم ما هو هنا و و- في وحدة التحكم، و-
التصغير والدورات هو، كما تعلمون،
ما أن نطاق المحلية هي المتغيرات المتاحة
وهذا هو حاليا العالمي كائن لأنه كما رأيتم ذلك،
إلا إذا كنت مع الكلمة سياق محدد، فإنه لن
لديك شيء ذات الصلة هنا.
وبعد ذلك، - واسمحوا لي تظهر بضعة أمثلة
تنفيذ الوعود.
وذلك بدلا من القيام بذلك المدربين withRelated هنا أنا
ذاهب الى المضي قدما ونقل هذه لجلب ثم الدورات،
أنا ذاهب إلى العودة courses.load المدربين.
وبعد ذلك - ثم استدعاء ذلك الحين.
[وقفة]
حتى ذلك الحين في هذه المرحلة، و يجب أن يتم تحميل دورات
مع المدربين، والتي هو عمل غير متزامن.
ولكن لأننا إعادته من وعد، وقيمة المقبل
لثم هو مهما كان هذا إرجاع الاستدعاء غير متزامن
وهو في هذه الحالة الحمل هي طريقة في رف الكتب
وترجع في الواقع جمع نفسه.
حتى انها لتحميل هناك مدربين على
ثم يمكنك تحديد - اذا كان خاصية واحدة فقط،
يمكنك تحديد هذا كسلسلة، وإلا،
يمكنك القيام المدربين والمتطلبات
كوسيلة من وسائل - آسف، كما صفيف.
ثم إذا كنت ترغب في الحصول على يتوهم حقا وتقيد أي
هذه نظرا جلب، كنت يمكن تحديد على أنها تجزئة
مع مدربين ومن ثم ما تريد للحد من الاستعلام على.
لذلك، أود أن تحميل كافة المدربين على دورات حيث -
حتى QB لباني الاستعلام حيث حالة نشطة.
ويمكنك الحصول على حقا يتوهم مع أي
من الاستعلامات ذات الصلة كنت ترغب في بنائها.
ولكن، فقط في الوقت الراهن، ونحن في طريقنا التمسك مدربين فقط
ونحن عودته تلك القيمة
حتى ذلك الحين ينبغي المقبل ثم الحصول على جميع الدورات تحميل
بشكل صحيح.
وإذا كان هناك خطأ في أي خطوة في تلك السلسلة،
سيكون القفز وصولا الى الصيد.
لذلك دعونا نمضي قدما وتشغيل هذا.
لذلك في كل مرة - على خلاف في PHP، والجانب السلبي واحد هو
"بسبب عقدة" هو منذ فترة طويلة عملية، تحتاج فعلا
لوقف عملية عقدة كما تقوم بتحديث التعليمات البرمجية الخاصة بك،
لأن الإصدار أنه قيد التشغيل في وقت التشغيل هو،
إصدار التعليمات البرمجية التي تم تحميلها
عندما بدأت لا ما لديك نوع
من تحديث التعليمات البرمجية مع منذ ذلك الحين.
موافق. سنقوم تعيين نقطة توقف هنا، هنا والتحديث.
[وقفة]
أوه، أنا فعلا لا تحديث هذه الصفحة إما
لذلك كان على العملية القديمة.
لذلك قمت بتحديث كل من هذا والمفتش العقدة.
وحتى الآن نرى الدورات.
إذا أخذنا عينة فقط واحدة من هذه النماذج،
يمكننا أن نرى أن العلاقات كائن فارغ، ولكن الآن -
والسبب الذي تحتاج لتعيين نقاط التوقف هو، أيضا،
أنا ذكرت أنك يمكن القفز الى تتبع المكدس
ونرى تعلمون، حيث انها تسير في التطبيق.
حتى الآن أستطيع أن أرى ما هو يحدث في طريقة الحمل،
التي كنت تعرف على المجموعات.
انها نوع من "الأحمال حرصا علاقات على أحد بالفعل ".
ويمكنك التنقل خلال وترى سطرا سطرا
حيث هذه الاشياء هي الذهاب التي هي كبيرة.
إذا كان لديك شيء وهذا ما كسر في التعليمات البرمجية،
انها رمي بعض الخطأ و كنت مثل، أريد حقا
لمعرفة أين يحدث هذا.
ولكن بمجرد ان واجهت شيء غير المتزامن، و-
فإنه يذهب إلى المقبل القراد من الحلقة الحدث
وسوف تخسر الخاص - تفقد مكانك
في مفتش العقدة.
لذلك أنت بحاجة إلى أن أقول، "حسنا، مرة واحدة أفقد هذا،
يجب أن تتوقف الآن في هذا الخط مرة أخرى ".
'السبب إذا ظللت ضرب أسفل، أسفل المكدس،
كان يمكن أن يكون في نهاية المطاف فقط ذهبت بعيدا لم أكن قد ضبط هذا
خط 22 الأزرق خط فاصل.
وحتى الآن، إذا أنا أنظر في الدورات هنا،
فإنه ينبغي على العلاقة المدربين
ويكون ثم المدربين إرفاقها.
لذلك، يمكنك أن ترى أن عدت وعد من الوعد الأول
ومن ثم يمكن لك باستمرار تفعل ذلك أسفل الخط.
ذلك الوعد مختلفة، وعد المكتبات،
كنت واحدة تسمى بلوبيرد وهو أمر مفيد حقا.
فإنه يضيف الكثير من لطيفة من هذا لتغيير غير متزامن -
تغيير مكالمة هاتفية كود قاعدة في الاشياء
التي تعمل بشكل جيد مع وعود.
ولكن - آسف [غير مسموع] ما كنت ذاهبا الى القول انها هناك.
دعونا نلقي نظرة وإن كان في -
لذلك دعونا نقول أن هناك المشكلة عندما جلب شيء.
وذلك لدي هذا الطريق الأخرى للعثور على رقم يسمى بالطبع.
لذلك دعونا نفعل بالطبع 2.
يمكنني الحصول على - JSON بالطبع.
ويفعل هذا [غير مسموع].
[وقفة]
أنا رائحة شيء خاطئ هنا.
ليس على 3000، كنت في علامة التبويب المفتش كروم.
موافق. لذلك دعونا نذهب ل بالطبع - JSON بالطبع 1.
وهذا يعود فقط في جسون شكل، وبالطبع تحميل
مع بعض المدربين.
ولكن المثال أردت لإعطاء هنا هو أنه،
وأنا أفعل جسون ID بالطبع.
وفي جلب المعلمات، أنا تتطلب تحديد صحيحا،
وهو الخيار الذي ل وثقت في رف الكتب
حيث انها قائلا "إذا، وأنا أحاول العثور على هذا الحال و
وانها ليست هناك، ثم رمي خطأ ".
وأنه ينبغي القبض عليهم من قبل منع الصيد هنا.
لذلك دعونا نمضي قدما والقفز مرة أخرى في مفتش عقدة ومحاولة
وكسر هذا و نرى ما حصلنا عليه.
لذلك دعونا تعيين فاصل هنا على ملعب جسون.
حسنا.
سأذهب إلى JSON بالطبع و وأود أن وضعت للتو في بعض -
[وقفة]
يمكن أن تكون صعبة قليلا أحيانا عندما كنت في محاولة
لإدارة أي واحد تم تحديث
والتي لم - دعونا نرى.
حتى انها تدعو الخطأ استجابة فارغة.
[وقفة]
دعونا رمي المصحح هنا.
بسبب الطريقة العقدة يحسن الواقع
لوقت التشغيل جافا سكريبت أن يكون بسرعة على الخادم،
أحيانا المصحح عقدة لديه بعض الأخطاء عند محاولة
وتعيين نقاط التوقف بشكل ديناميكي وكنت فعلا بحاجة
لاستخدام مصحح و ليس سطرا سطرا.
لذلك دعونا نرى ما اذا كان هذا يحصل لنا ما نريد.
لذلك أنا وضعت، app.get بالطبع سلمان الهوية،
ولقد حدد لي المصحح هناك
في بيان الصيد في الجزء السفلي.
جلب تتطلب صحيحا، فإنه ينبغي - كل الحق، وهناك نذهب، كسر.
لذلك، والآن أستطيع أن أرى أنه توقف
في هذه الكتلة الصيد النهائي لأن withRelated -
أو لأن تتطلب صحيح المحدد وليس هناك بالطبع
مع معرف بهذا الحجم عدد من خلال استثناء
وهو الآن Emessage.
وكل خطأ في جافا سكريبت له خاصية المكدس
التي تأتي معها.
لذلك فمن المفيد غالبا لعلى سبيل المثال،
تعزية تسجيل الخروج e.stack.
وأستطيع أن أرى فعلا عندما ضرب خطأ.
حتى أحصل على خطأ فارغة ردا على ذلك، هذه هي الرسالة
التي تم إرسالها عبر رف الكتب.
ولكن الآن، ويمكنني أن نلقي نظرة في، في مكدس المكالمة ومعرفة
أنه في رف الكتب اللهجات SQL نموذج 83،
هذا الرد فارغة ألقيت الخطأ.
وهذا هو المكان الذي أنا ذكر، انها نقطة مجهول
لأنه مجهول وظيفة.
واذا كان ذلك وظيفة اسم كنت لديهم أفكار أفضل
التي تعمل في الواقع من خلال دون الحاجة إلى الذهاب
إلى رمز model.js.
على الرغم من أنه من المفترض أن تكون إلى حد ما، يمكن قراءتها إلى حد ما،
حتى أستطيع أن أرى أن على الانترنت.
ما لم اقول كان لي خط 83.
لذلك، إذا options.require و لم تكن الإجابة موجودة،
فإنه يطرح الآن جديدة خطأ استجابة فارغة.
حتى تتمكن من رؤية جميلة مباشرة كيف يعمل.
وداخليا في رف الكتب،
هناك كنت آكل فقط حفنة من استخدام الوعود.
حتى تتمكن من تحديد Promise.method
مع مكتبة بلوبيرد والتي تحافظ على السياق الصحيح
هذا بينما كان عائدا وعد.
وحتى لقد - أنا ملزم قيمة هذا مماثلة
لما كنت قد ذكرت في وقت سابق، ولكن باستخدام عود
وبعد ذلك يمكنني أن - هو جديد.
يمكن أن يكون غير متزامن أو ليس إذا أريد.
وبعد ذلك القيام ببعض الأشياء الأخرى التي قد
أو قد لا تكون متزامنة و ثم أنواع من القفزات أسفل هذا.
حتى Promise.all هو مساعد أن الكثير من المكتبات لديها شعبية
حيث يمكن أن يكون ل مجموعة من يحتمل أن تكون قد
أو قد لا تكون وعود.
ومرة واحدة كل تلك هي الانتهاء، يمكنك أن العودة
وبعد ذلك يقفز إلى السطر التالي
ويمكنك أن ترى كيف هو حقا يسطح من الهرم
أن تحصل، و رد الجحيم، كما عرفت
إذا كنت تفعل كل شيء رد مع خط سطرا.
هناك طرق للالتفاف ولكن الوعود التي هي واحدة
من أفضل الطرق في رأيي
للحفاظ على التعليمات البرمجية الخاصة بك حقا نظيفة وسهلة القراءة.
بحيث هو مجرد قصيرة مقدمة لجافا سكريبت
وإلى رف الكتب وKnex بشكل عام.
وإذا كان هناك أي أسئلة، وأنا أعلم أنه من نصف طن من المواد
إلى نوع من محاولة لتغطية خصوصا لغات،
وخلافا لمعظم أنك دراية لذلك أردت فقط
لجعله بحيث لا يقل عن إذا كنت تواجه مشاكل
مع التعليمات البرمجية الخاصة بك، فإنك يمكن القفز من نوع في -
هذا ما أود القيام به، هو نوع من القفز في المكتبات
أن أنا باستخدام ونرى كيف يتم تنظيم الأمور.
هناك واحد أن كنت قد ذكرت دعا في وقت سابق Backbone.js
والواقع انها [غير مسموع] على جانب العميل
للمساعدة في إعطاء نموذج عرض هيكل وحدة تحكم
إلى التعليمات البرمجية.
لكنه لا يملك في الواقع مصدر الوثائق المشروح
والذي يسمح لك أن ترى نوعا من.
انها حقا جيدا موثقة، ما يحدث،
كيف انها زيادة وظائف اياكس
أو وظيفة أو الحدث نماذج ومجموعات هذا النوع
شرح ما هو يجري في هذه العملية.
وإذا فهم أساسيات جافا سكريبت
مثل الميراث نموذجي وكيف تستخدم وظائف
لأن كلا من الأشياء والقيم ودروس وكل شيء.
فإنه يجعل من الأسهل كثيرا لفهم ما يجري
على محتملة في المكتبات التي كنت تستخدم
ورمز المصحح وتكون قادرة أن لا تكون ضجيجا رأسك
ضد الجدار ل كنت لا أفهم كيف يمكن لل
قطع مختلفة تعمل، لذلك.