>> সুতরাং, যে বলেন হচ্ছে সঙ্গে,
শুধু ধরণের একটি সহজ এগুলির নমুনা পরিচিতি
এবং জাভাস্ক্রিপ্ট অবজেক্ট মডেল.
আমরা নামান যাচ্ছেন না কথা বলার জন্য অল্প গিয়ারের
উপর সম্বন্ধে আরও জাভাস্ক্রিপ্ট সার্ভার এবং বইয়ের থাকটি লাইব্রেরী
এবং সংযোগ Knex লাইব্রেরী.
সুতরাং, আপনি আসলে ঠিক করতে পারেন -
আপনি Bookshelf.js অনুসন্ধান যদি এটা প্রশংসনীয় সহজ হওয়া উচিত
খুঁজে পেতে, প্রথম হওয়া উচিত ফলে, এবং বইয়ের থাকটি
ডেভিড শুধু হিসাবে উল্লেখ করেছে কাঠামো অনেকটা দেয়
জাভাস্ক্রিপ্ট বস্তুর চারপাশে এবং তাদের সাথে পাশ দিয়েই কাজ
রিলেশনাল ডাটাবেস মধ্যে.
সুতরাং, অনুরূপ বৈশিষ্ট্য অনেকটা যারা আসলে ব্যাপকভাবে অনুপ্রাণিত
Laravel এর ORM হিসাবে দ্বারা ভাল Backbone.js হিসাবে,
একটি সামনে শেষ MVC যা আপনি যার সাহায্যে লাইব্রেরি
আপনার কোড গঠন, আমি দেখাচ্ছে ছিল অনুরূপ কি
উদাহরণ দিয়ে এগুলির নমুনা যেখানে আপনি যা করতে পারেন -
পরিবর্তে শুধুমাত্র ইচ্ছামত র ক্লাস নিক্ষেপ
এখানে - সেখানে আপনার মতামত উপর.
এটা আপনার মডেল দেয় এবং ঐ মডেলের স
হিসাবে কাজ অনুমিত হয় যা সত্যের ধরণের একটি একক বিন্দু
জন্য তথ্য সম্পর্কে আপনার আবেদন.
এবং তারপর আপনি ঐ হিসাবে, শুনতে মডেল পরিবর্তন করা হয়েছে, আপনি, ঠিক আছে, বলে
এই টেমপ্লেটটি পুনরায় রেন্ডার এখানে এবং এই এক উপর এখানে
এবং শুধু এখানে বর্গ যোগ না, সেখানে ক্লাসে যোগ ধরণের বাছাই
নির্বাচক উপর এবং না jQuery কোডের spiderweb.
এটি একটি বর্গ ভিত্তিক বেশি দেয় পৃথক টুকরা গঠন,
কিন্তু একটি গুরুত্বপূর্ণ উপাদান যে লাইব্রেরি মডেল হয়
একটি অনুরূপ কাঠামো আছে যা বইয়ের থাকটি মডেল কি করার.
সুতরাং, আপনার সাথে পরিচিত হলে আপনি প্রশংসনীয় এছাড়াও আছেন বইয়ের থাকটি
সঙ্গে বেশ পরিচিত , মডেল Backbone.js
এবং আমি বলতে চাই এই কটাক্ষপাত গ্রহণ.
প্রধান বৈশিষ্ট্য সুতরাং, কিছু
এটা আপনি যে দেয় ঠিক একটি বস্তুর উপর তথ্য সেট করার ক্ষমতা
, আনা কল যা একটি পৃথক রেকর্ড ফেরৎ
ডাটাবেস থেকে, তৈরি হিসাবে অনুরূপ সম্পর্ক
আপনি মোকাবিলা কি করতে Laravel মধ্যে মধ্যে
আপনি একজন বলতে পারেন যেখানে রোগীর রেকর্ড পদ্ধতি সেট
এবং এই রেকর্ড জিতেছে বলে
যেখানে রেকর্ড বস্তু টেবিলের নামের স্বাস্থ্য রেকর্ড.
এর দেখতে দিন.
অনেক আছে - এটা করার জন্যে -
আপনি যে শুধু স্টাফ প্রায় কাছাকাছি অনুরূপ -
সঙ্গে বেশ পরিচিত ইতিমধ্যে, কিন্তু জাভাস্ক্রিপ্ট মধ্যে.
এবং ফণা অধীন, বইয়ের থাকটি জন্য,
এটি একটি প্রশ্নের সাথে রচয়িতা ব্যবহার করে Knex.js. বলা
সুতরাং, যে Knex, knexjs.org এর.
এটা খেলনা একটি রেফারেন্স যদি কেউ কি কখনো এই সঙ্গে অভিনয় হচ্ছে.
কিন্তু এটা আপনি করতে পারবেন - একটি মধ্যে অনুরূপ ফ্যাশন, jQuery করার জন্য,
আপনি শুধু ধরণের একটি তৈরি বিভিন্ন পদ্ধতির চেইন
আপনি আহ্বান করছি যে আপনার ডাটাবেস সারি আপনি পারেন তাই -
আপনি বলে শুরু আউট Knex ও টেবিলের নাম.
সুতরাং, উদাহরণস্বরূপ, Knex ব্যবহারকারী, আপনি চান, যা কলাম নির্বাচন করুন
যেখানে, এবং বিভিন্ন যেখানে আছে কন্ডিশন এবং আপনি থাকতে পারে
এবং কোথায়, বা যেখানে, যেখানে এর মধ্যে, যেখানে না,
আপনি এখন, লাইন ডাউন.
আপনি যোগদান করে বিভিন্ন নির্দিষ্ট করতে পারেন আপনার ডাটাবেস সারণির মধ্যে
বইয়ের থাকটি অন্ত ব্যবহার করে যা জাদু ধরণের সেট আপ
hasOne চারপাশে, hasMany, belongsTo, belongsToMany.
তাই সমন্বয়
দুইয়ের আপনি না দেওয়া প্রশংসনীয় অনেক কি আপনি ব্যবহার করা চাই
মত কাঠামোর মধ্যে থেকে পদ Laravel
কার্যকারিতা উপাত্ত সঙ্গে কাজ.
সুতরাং, আসুন এগিয়ে যান এবং নিতে একটি সহজ উদাহরণ কটাক্ষপাত
একটি এক্সপ্রেস অ্যাপ্লিকেশন জন্য যা এই মডেল ব্যবহার করে তোলে
এবং সংগ্রহ বইয়ের থাকটি জ্যাজ [ফনেটিক].
সুতরাং, আমি শুধু একটি সেট আপ করেছি এখানে সহজ আবেদন.
আমি জিনিস কিছু খুঁজে ছিনতাই যে দ্রুতগামী আরম্ভ হয়েছিল
এবং একটি Init মধ্যে যে সরাতে আমি সৃষ্টি, যা নির্দেশিকা.
সম্পর্কে চমৎকার বিষয় হল যে অনুমিত হিসাবে এক্সপ্রেস সঙ্গে কাজ
Laravel করার আছে যে হয় সত্যিই অনেক জারি না
আপনার উপর conventionalized.
সুতরাং আপনি ডিরেক্টরি তৈরি করতে পারেন -
এটা সত্যিই আপনি দেয় না বন্ধ কাজ সমগ্র অনেক.
আপনি ঠিক সাজানোর কিছু পেয়েছেন তাহলে মৌলিক সেটিংস এবং -
কিন্তু এটি না যত্ন আপনি তাদের করা যেখানে.
আপনি করতে হবে না নিয়ামক এর নির্দেশিকা.
আপনি একটি মডেল আছে, দরকার নেই ডিরেক্টরি, একটি কনফিগ নির্দেশিকা.
আপনি ধরণের তৈরি করতে পারেন আপনার প্রকল্পের চাহিদা হিসাবে যারা
এবং উপায় জিনিষ স্থাপন যে আপনার কাছে সবচেয়ে জানার জন্য.
সুতরাং পরিবর্তে সমস্ত জমিদারি এই দ্রুতগামী boilerplate
প্রধান app.js মধ্যে আমি শুধু বলেন অ্যাপ্লিকেশন সমান init / এক্সপ্রেস প্রয়োজন.
তাই Init মধ্যে,
আরম্ভ করা ফোল্ডার আমি শুধু এখানে প্রকাশ করেছেন
এবং এই এক্সপ্রেস, কল প্রয়োজন সেটআপ ফাংশন, কল -
দেখুন ইঞ্জিন আপ সেট করে, JSON পার্সার, সব যে.
সুতরাং এখন, এর নিচে চালিয়ে যাক.
তাই আমি প্রয়োজন করছি কোর্সের প্রশিক্ষক সভা
এবং প্রয়োজনীয়তা মডেল.
সুতরাং এই একটি ফোল্ডারে যে আমি শুধু নামের মডেল করার সিদ্ধান্ত নিয়েছে.
এটা যে হতে হবে তা নয় উপায় যাইহোক এটা জ্ঞান করে তোলে
কিন্তু মডেলের শুধু সুন্দর হয় সাধারণ তাই আমি এটা বলতে হবে.
কিন্তু - সুতরাং আসুন চলুন কোর্সের জন্য.
আমি ব্যবহার করছি মনে করি - হাঁ, এবং উদাহরণ
নিচে এখানে সব ভিত্তি করে অবশ্যই মডেল চারপাশে.
তাই আসুন শুধু নিতে একটি যে তাকান.
সুতরাং এখন, শুধু এর এই মডেল এর প্রথম লাইন,
আমি ইতিমধ্যে প্রয়োজন করছি অন্য কিছু.
আপনি নোডের মধ্যে বিজ্ঞপ্তি পাবেন যদি তাই আপনি প্রয়োজন হবে
অথবা আপনি শেষ করতে যাচ্ছেন আভা প্রয়োজন
বিভিন্ন ফাইল অবস্থিত হয় যে
বিভিন্ন জায়গায় আপনার আবেদন.
এবং আপেক্ষিক পাথ আপনি যেখানেই থাকুন না করতে
আপনার বর্তমান আবেদন,
এটি ইতিমধ্যেই একটি শীর্ষ স্তরের হল, যদি না আপনি এটি ইনস্টল হিসাবে সংজ্ঞায়িত
বইয়ের থাকটি মত MPM বা সঙ্গে Knex বা এক্সপ্রেস বা কিছু,
যারা আপেক্ষিক নয়.
হ্যাঁ? আরো জুম ইন?
ঠিক আছে. ঠিক আছে. সুতরাং, আপনি চলুন আভা প্রয়োজন শেষ
আপনার মধ্যে শুধু বিভিন্ন ফাইল ভাল এবং খারাপ যা কোড,.
আপনি কি জানেন একটি ভাল উপায় যেখানে জিনিস এবং এটা কেমন না
জাদু কি হিসাবে ফণা অধীন যাওয়া,
সত্যিই বিভ্রান্তিকর হতে পারে যা
আপনি একটি খুব আছে ভারী জাভা -
অথবা খুব ভারী কাঠামো মত ধরণের যা বলছেন Laravel,,
আমরা যত্ন নিতে যাচ্ছেন এই তাই আপনার না থাকে
সবকিছু প্রয়োজন কিন্তু আপনি আছে
জানেন কিভাবে সবকিছু এটি ব্যবহার করার জন্য কাজ করে.
কোথায় এই ক্ষেত্রে হিসাবে, এটা হিসাবে খুব সহজবোধ্য
সবকিছু, যেখানে তারা শুধু শেষ করছি
আপ একটু বেশি টাইপ হচ্ছে.
শুধু আমি চাই পাশ হিসাবে ব্যবহার, একটি প্লাগইন আছে
আপনি একটি অন্ধ টেক্সট ব্যবহার
আপনি নোড স্থাপন করা সম্ভব যেখানে মডিউল সাহায্যকারী এবং আপনি শুরু করতে পারেন
প্রশিক্ষক মত টাইপ করতে এটা আপেক্ষিক পাথ তৈরি করে
আপনি যে যেখানে যাও কোড ফাইল, ধরনের দরকারী.
সুতরাং, অবশ্যই মডেল এখানে বেস প্রয়োজন হয়
এবং তারপর বেস অন্তরীণ Init / বইয়ের থাকটি প্রয়োজন
এবং তারপর বইয়ের থাকটি, এটা শীর্ষ স্তরের বইয়ের থাকটি প্রয়োজন
এবং তারপর সঙ্গে এটি সূচনা সক্রিয়া Knex উদাহরণস্বরূপ,
ক্লায়েন্টের নাম সেট করে যা
এবং সংযোগ ডাটাবেসের জন্য সেটিংস.
তাই আমি শুধুমাত্র একটি সহজ ব্যবহার করছি পরিণাম প্রো যা উদাহরণস্বরূপ -
মাইএসকিউএল, আমি সঙ্গে এটি ব্যবহার করছি পরিণাম প্রো এবং এটি আছে শুধু সাজানোর
একটি অনুরূপ ডাটাবেসের আমরা ছিল হিসাবে সেটআপ
প্রথম নমুনা আবেদনপত্রে অবশ্যই ক্যাটালগ সাথে.
সুতরাং, আমি আমার কানেকশন সেট এখানে সেটিংস,
এবং এই সব নথিভুক্ত করা হয় Knex.js প্রকল্প পেজে
যাও হিসাবে কিভাবে সেটআপ এই সংযোগ.
সুতরাং, আমি এখন আমার বেস মডেল আছে.
এবং আমি সঙ্গে হিসাবে উল্লেখ করেছে প্রোটোটাইপ পরিবর্তন,
তাই যে আসলে যা করতে পারেন অনেক ধরনের হতে -
boilerplate অনেক অ্যাডস আপনার কোড তাই কনভেনশন
যে অভিযোজিত হয়েছে Backbone.js দ্বারা
এবং এখন Bookshelf.js হয় এই পদ্ধতি প্রসারিত যোগ করতে
একটি স্ট্যাটিক সম্পত্তি হিসেবে আপনার জাভাস্ক্রিপ্ট বস্তু,
এটা প্রায় কেমন যা দেয় শ্রেণী ভিত্তিক উত্তরাধিকার প্রকৃতি
যেখানে আপনি কল যদি আপনার কোন সেট আপ করতে পারেন প্রসারিত
প্রোটোটাইপ পদ্ধতির আপনি এখানে চাই
এবং তারপর আপনি করতে পারেন - কোন অতিরিক্ত স্ট্যাটিক পদ্ধতি
আপনি, চাইতে পারেন যে শুধু তাদের নিজেদের সেট করতে পারেন
এখানে তাই আমি এটা প্রসারিত করতে পারেন সঙ্গে - তাই উদাহরণস্বরূপ, যদি
একাধিক মডেলের প্রয়োজন নাম ও এই করুন নাম প্রদর্শন.
সুতরাং, এখানে, আমি বলছে করছি মডেল জন্য প্রদর্শনের নাম
ডিফল্টরূপে যাই হোক না কেন তার নাম সম্পত্তি অন্যথায় প্রত্যাবর্তন
কোন নাম.
এবং এখন প্রতি উপর মডেল যে একটি হল -
যে এই বেস মডেল প্রসারিত করে, আমি এখন একটি প্রদর্শন নামের পদ্ধতি আছে
প্রোটোটাইপ উপর কোথাও চেইন.
এবং আমি এটা মুছে ফেলা চাই আমি এটা সেট করতে পারেন - কি সেট -
getname এখানে হবে.
এবং এটা আপনি অনুকরণমূলক করতে পারবেন শাস্ত্রীয় উত্তরাধিকার
জাভাস্ক্রিপ্ট মধ্যে, যা হতে পারে জিনিসের জন্য বিশেষ চমৎকার
যে নিজেরাই হচ্ছে ধার করা হয় ক্লাসের অবজেক্ট মডেলের মত করে.
সুতরাং এর মধ্যে ফিরে ঝাঁপ দেওয়া আবেদনপত্রের অবস্থান.
তাই আমি শুধু জন্য একটি রুট পেয়েছেন শুধু আমার সূচক জন্য, স্ল্যাশ
এবং তারপর কোর্স কাট.
আর এই দুটি আহ্বান করা হয় renderCourses পদ্ধতি.
তাই আবার, ফাংশন প্রথম শ্রেণী এবং পাস করা যায়
পদ্ধতি আর্গুমেন্ট হিসাবে.
সুতরাং, এই এছাড়া আরো কিছু নিয়ম ইন, আমি আহ্বান করছি -
আমি renderCourses পার করছি যুক্তি হিসেবে.
এবং রেন্ডার - বা ফাংশন var মত সেটআপ হতে পারে -
আমি আগে var করছেন হিসাবে renderCourses ফাংশন সমান
অথবা তারা হতে পারে শুধু ফাংশন renderCourses.
এটা খুব দেখা যায় না একটি পার্থক্য অনেক.
আপনি আসলে থাকতে পারে কি নামের ফাংশন বলা হয়
যা এক্সপ্রেশন, var renderCourses সমান
ফাংশন renderCourses.
এবং, আছে সেটি করার কারণ বিশেষ ফাংশন নাম দিন
নোডের মধ্যে যে এটা আপনি একটি ক্লিনার দেয় -
আরো পাঠযোগ্য স্ট্যাক ট্রেস.
সুতরাং আপনি আভা আছে
বেনামী কর্ম এটা বলতে হবে -
আপনি একটি ত্রুটি আছে আপনার কোড মুকুটের নিখুঁত নকল মধ্যে -
আপনি জানেন না, যা ফাংশন এটা আপনার চেহারা আছে চাই কলিং এর
কোড নম্বর এ এবং লাইন সংখ্যা
এবং এটা কখনো কখনো সহজ শুধু চাক্ষুষরূপে বিশ্লেষণ করতে
আপনি এমন নাম আছে যখন
ফাংশন জন্য সার্ভার প্রান্তের উপর নিজেদের.
তাই এই renderCourses, এর নোড অ্যাপস কল করা যাক -
তাই আমি প্রথম শোনা করছি কোর 3000 [ফনেটিক].
এবং তাই এই সব অধিকার করছে এখানে শুধু পেয়ে সব
ডাটাবেস থেকে কোর্স.
আমি এমনকি এটি সীমিত করছি না তাই এটি একটি বিশাল সংখ্যা করছে
সারির তা ফিরে পাবে.
আর এই কাজ করার জন্য,
সেখানে অবশ্যই মডেল একটি স্ট্যাটিক সম্পত্তি
সংগ্রহে নামে.
এবং তাই আমি এটা কল - আমি একটি নতুন সংগ্রহ তৈরি বলেন
এই কোর্সের জন্য, এবং তারপর এটি আনা,
এবং তারপর কোর্স ফিরে এখানে ওয়াদা মধ্যে সংগ্রহ.
সুতরাং অভ্যন্তরীণভাবে, ডেভিড মধ্যে - গত দেড় অল্প পড়ানো
প্রতিশ্রুতি ও অঙ্গীকার সম্পর্কে উভয় Knex খুব প্রচন্ডভাবে ব্যবহৃত
এবং বইয়ের থাকটি কারণ এটা ধার দেয় -
এটি আপনাকে দেয় একটি গুচ্ছ আছে ক্ষমতা
বিভিন্ন এসিনক্রোনাস কল এবং সাজানোর একসঙ্গে তারপর যোগদান
বা তারপরে কিছু আনা, এবং
যে কল অপরের সঙ্গে এসিনক্রোনাস ডাটাবেস কল
এবং যে মান এবং ফিরে তারপর তারপর পরবর্তী ঝাঁপ
এবং পরের তারপর এবং তারপর আছে একটি বাছাই খুব শেষে ধরা
এর অনুকরণমূলক এসিনক্রোনাস করে দেখুন ক্যাচ এসিনক্রোনাস কোড সঙ্গে আচরণ,
আপনি এখন এটি দেখছি কারণ
কিন্তু এটি এমনকি কঠিন একবার এর আপনি তা মোকাবেলা শুরু.
অসমকালীন কোড শুধু সর্বত্র হয়
সার্ভার প্রান্তের জাভাস্ক্রিপ্ট এবং এ সত্যিই একটি অনেক বড় ডিগ্রী
আপনি যদি ব্যবহার করতেন আর আপনি জাভাস্ক্রিপ্ট করেছেন
ক্লায়েন্ট পাশ দিয়ে.
সুতরাং যে সত্যিই সত্যিই, আউট আছে আপনি সাহায্য করেছে.
তবে আপনি প্রদর্শন ডিবাগার বিবৃতি
আমি এ বিষয়ে কথা হয়েছিল নোড পরিদর্শক সরঞ্জাম,
আমি এগিয়ে যান যাচ্ছে এবং করছি এখানে একটি ডিবাগার লাইন নিক্ষেপ
renderCourses ফাংশন যে আমার বাড়ে কোথায় এবং দেখুন
যখন আমি - তাই নোড পরিদর্শক ইনস্টল করা যাবে
NPM ইনস্টল করে একটি জি পতাকা দিয়ে,
গ্লোবাল যার মানে নোড ইন্সপেক্টর.
এবং এটা NMP জন্য এটি আনা করব এবং বিশ্বব্যাপী এটি ইনস্টল
আপনার অ্যাপ্লিকেশনের জন্য তাই আপনি শুধু এটি কল করতে পারেন
কমান্ড লাইন থেকে.
আমি ইতিমধ্যে ইনস্টল করেছি তাই আমি এগিয়ে যান এবং করব -
আসলে এটা থাকতে পারে এটা নেব অপেক্ষা,
দুই যাও নিতে.
এবং কি নোড পরিদর্শক আবার আপনি পারবেন
কি এই মস্তিষ্কহীন থাকতে হয় ডিবাগার কনসোল সংস্করণ
আপনি যখন কাজ ব্যবহার করতেন যে ক্লায়েন্ট পাশ ও পারবেন
বন্ধ করার জন্য, শুধু নির্দিষ্ট যুক্ত আপনার কোড পয়েন্ট.
মৃত্যুদন্ড বন্ধ করুন এবং একটি নিতে কি করছেন তাকান,
সত্যিই আছে যা উপকারে যদি বৈশিষ্ট্য
যে উপলব্ধ ছিল মত
ডিবাগ যখন আপনার পিএইচপি কোড আমি নিশ্চিত নই.
তাই আসুন শুধু নিতে একটি যে তাকান.
তাই আমি শুধু কল করতে পারেন নোড পরিদর্শক
এবং এটি এই URL দেখার বলবো ডিবাগ শুরু পোর্ট 5858,
যে শুধু ডিফল্ট এর এটা শুরু হয় কিভাবে জন্য.
সুতরাং, আমি এখন আছে - আছে কিছুই এখানে হচ্ছে
আমি শুরু করা দরকার, কারণ.
সুতরাং নোড কানাগলি [ফনেটিক] ডিবাগ পতাকা এবং তারপর app.js.
সুতরাং এটি ডিবাগার বলেছেন , পোর্ট 5858 উপর শোনা
এক্সপ্রেস সার্ভার শ্রবণ 3000 তে.
সুতরাং আমরা যেতে ভাল.
আমাকে শুধু এই রিফ্রেশ দিন.
এবং এখন আমি app.js দেখতে পারেন আমি ঠিক দিকে তাকিয়ে ছিল যে কোড
কিন্তু এখানে কনসোলে.
তাই এখন, আমি এই চালানোর চেষ্টা করা হলে, আপনি এটি দেখতে পারেন, এটা স্টপ.
এটি শুধু অপেক্ষা করছে, কারণ তার সমগ্র কোড মৃত্যুদন্ড এখন হয়
এই ডিবাগার নেভিগেশন থামানো আমি সেখানে রাখা করেছি যে লাইন.
এবং আমি এখন সার্ভার যা করতে পারেন -
[শ্রবণাতীত মন্তব্য]
হাঁ, ওহ. কিওয়ার্ড কি পর্দা জুম শর্টকাট?
ওহ আছে.
এটা পেয়েছেন. ঠিক আছে.
[বিরাম]
ওহ, এটা খুঁজছেন না [ফনেটিক] যে.
সুতরাং, কোর্স সত্যিই বড়
আমি একটা কাজ করছি না, কারণ ধারা বা কিছু সীমাবদ্ধ,
এটা আনয়ন এর কোর্স সম্পূর্ণ ডাটাবেস
তাদের অনেক যা হয়.
এবং তাই - বস্তু যা
যে আসলে বিপর্যস্ত হতে পারে উল্লেখ্য পরিদর্শক উদাহরণস্বরূপ.
প্রচলিত আইনও - ঠিক আছে.
আমার একটা সীমা করুক না এবং তাহলে আমরা দেখব পারেন
এটি আনয়ন না হলে কোর্স শত শত.
সুতরাং, সার্ভার হত্যা এবং পরিদর্শক
এবং আমি অবশ্যই চেষ্টা করবো সংগ্রহে প্রশ্নের সাথে সীমা 20.
সুতরাং, বইয়ের থাকটি মধ্যে, Laravel অসদৃশ
আপনি শুধু কল করতে পারেন যেখানে সরাসরি সীমিত বা কোন কল
এই এসকিউএল পদ্ধতি আপনি ব্যবহার করে
সরাসরি ORM ইনস্ট্যান্সের উপর থেকে.
আপনি শুধু ব্যবহার করছেন যে যে কোনো সময় প্রদান করা হয় যা এসকিউএল পদ্ধতি
Knex, আপনি করতে হবে বাছাই প্রশ্নের সাথে কল
এর প্রশ্নের সাথে চেইন মধ্যে টোকা.
এবং এই প্রার্থনা করা যেতে পারে একটি ফাংশন হয় সঙ্গে,
তাই আপনি, ফাংশন বলতে পারেন এই সীমা 10 অথবা আপনি কল
নির্দিষ্ট করে যা পদ্ধতি যদি আপনি ফোন করতে চাই
Knex ইনস্ট্যান্সের উপর এবং তারপর যা মূল্য.
সুতরাং আমরা করতে যাচ্ছেন 20 সীমাবদ্ধ এবং তারপর সেট.
আমরা আসলে না এখানে ডিবাগার প্রয়োজন
আমরা যা করতে পারেন, কারণ ব্রেকপয়েন্ট সেট
এবং যে এটি সহজ করে তোলে.
ঠিক আছে.
সুতরাং, এর একটি ব্রেকপয়েন্ট সেট যাক এখানে ডান এবং এটি লোড করার চেষ্টা করুন.
ভুল লাইন.
এখানে ডান.
[বিরাম]
ঠিক আছে. সুতরাং এটি আবার বন্ধ.
সুতরাং এখন, কোর্সের একটি হল 20 দৈর্ঘ্যের সঙ্গে আপত্তি
এবং আমরা সব বিভিন্ন দেখতে পারেন এটা সংগৃহীত যে মডেল
এখানে ডান ডাটাবেস থেকে তাই আমি একটি মডেল বস্তু পেয়েছেন
ভিতরে, যা সম্পত্তি গুণাবলী
অবজেক্ট সব জিনিস এটি ডাটাবেসের মধ্যে পাওয়া যে.
যে কোন ঘটনা নিবন্ধিত হয়েছে
তাই আপনি রেজিস্টার করতে পারেন বিভিন্ন ঘটনা,
উদাহরণস্বরূপ, যখন মডেল মোছা হচ্ছে
বা এটা সংগৃহীত হচ্ছে যখন,
আপনি বিভিন্ন সেট করতে পারেন বৈশিষ্ট্য বা বিষয় পরিবর্তন.
বিভিন্ন আঙ্গুলসমূহ অনেক আছে এবং এই সব নথিভুক্ত করা হয়
Bookshelf.js মধ্যে আপনি যে অনুমতি ডকুমেন্টেশন
কিছু বাছাই করবেন আপনি কি সত্যিই কাজ করতে চান যে
আপনার মডেলের সঙ্গে এবং স.
আপনি পারেন - তারা বোঝানো করছি সত্যিই স্বনির্ধারিত করা
এবং জন্য সত্যিই সহজ আপনি তাদের মানিয়ে
আপনার প্রয়োজন আবেদন.
তবে, এখানে মাধ্যমে খুঁজছেন
আমি কি আলাদা দেখতে পারেন কোর্স উপলব্ধ.
এবং এই ক্ষেত্রে, আমি আসলে আনা হয়নি
আর অন্য, অন্য কোন তথ্য দিয়ে শুধু কোর্স নিজেদের.
কিন্তু অনুরূপ ফ্যাশন আপনি সেট করতে পারেন বলিয়ে ORM
আপ সম্পর্ক, তাই অবশ্যই অনেক শিক্ষক জন্যে.
সুতরাং, আমি এগিয়ে যান এবং যদি অ্যাপ্লিকেশন বন্ধ করা,
আপনি, কল আনা এই ঝাঁপ বিভিন্ন বিকল্প উল্লেখ করা যাবে
আপনি চান যে এটি বরাবর পাস.
এবং তাদের একজন সম্পর্কিত কোড লোড করার ক্ষমতা
withRelated নির্দিষ্ট করে প্রশিক্ষক তারপর কোর্স.
সুতরাং আসুন ফিরে এবং তাজা যান এখানে এই এবং আবার বন্ধ.
সুতরাং এখন, কোর্স আপত্তি, মডেল একই সংখ্যক,
কিন্তু এখন প্রতিটি মডেল একটি সম্পর্ক হ্যাশ আছে
প্রশিক্ষক আছে যা এটি সম্পর্কিত যে.
উদাহরণস্বরূপ তাই এই কোর্স
অবশ্যই যা 082 দুটি আছে সম্পর্কিত প্রশিক্ষক মডেল.
এবং যদি আপনি ইতিমধ্যেই দেখতে পারেন অনেক সহজ এই সাজাতে হয়
এর চাক্ষুষরূপে তুলনায় সঙ্গে কাজ আপনি স্টাফ সঙ্গে লেনদেন করছেন যখন
আপনি ধরণের কোড পরিবর্তন করে এবং তারপর পিএইচপি আবার চেষ্টা করুন.
আসলে আপনি যা করতে পারেন যে মাত্র সম্পূর্ণ সঞ্চালনের থামাতে
এবং এখানে কি এবং মূল্যায়নের - কনসোলে, -
জুম আউট, কোর্স, আপনি কি জানেন, হয়
কি যে স্থানীয় সুযোগ রয়েছে ভেরিয়েবল উপলব্ধ
এবং এই বর্তমানে বৈশ্বিক হয় বস্তু, আপনি এটা দেখেছি কারণ
আপনি একটি সঙ্গে কল যদি না নির্দিষ্ট প্রেক্ষাপটে, এটা যাচ্ছে না
এখানে প্রাসঙ্গিক কিছু আছে.
এবং তারপর, - আমার দেওয়া আরো কয়েকটি উদাহরণ প্রদর্শন
প্রতিশ্রুতি বাস্তবায়ন.
সুতরাং পরিবর্তে এই করছেন এখানে withRelated প্রশিক্ষক আমি আছি
এগিয়ে যান এবং এই সরানো যাচ্ছে আনা এবং তারপর কোর্স,
আমি ফিরে যাচ্ছি courses.load প্রশিক্ষক.
এবং তারপর - তারপর তারপর আপনি কল.
[বিরাম]
আমি তখন এই মুহুর্তে, কোর্স লোড করা উচিত
প্রশিক্ষক সঙ্গে, যা এসিনক্রোনাস কর্ম হয়.
কিন্তু আমরা তা ফিরে করছি কারণ একটি প্রতিশ্রুতি থেকে, পরের মূল্য
তারপর জন্য যাহা এই হল এসিনক্রোনাস কল আয়
যা এই ক্ষেত্রে চাপের মধ্যে বইয়ের থাকটি মধ্যে একটি পদ্ধতি
যে আসলে ফেরৎ সংগ্রহে নিজেই.
সুতরাং লোড হচ্ছে সেখানে নেভিগেশন প্রশিক্ষক
এবং তারপর আপনি নির্দিষ্ট করতে পারেন - এটা শুধু একটা সম্পত্তি যদি,
আপনি এই নির্দিষ্ট করতে পারেন স্ট্রিং হিসেবে, নিয়োগ,
আপনি প্রশিক্ষক কি করতে পারেন ও প্রয়োজনীয়তা
একটি পদ্ধতি হিসাবে - দুঃখিত, একটি অ্যারে হিসাবে.
এবং তারপর আপনি পেতে চাই সত্যিই অভিনব এবং কোনো সীমাবদ্ধ
এর মধ্যে আপনি, রক্ষিত রাখে দেওয়া একটি হ্যাশ হিসাবে এটি নির্দিষ্ট করতে পারেন
প্রশিক্ষক এবং তারপর কি আপনার উপর প্রশ্নের সাথে সীমাবদ্ধ করতে চান.
সুতরাং, আমি সব লোড চাই কোর্স যেখানে নেভিগেশন প্রশিক্ষক -
প্রশ্নের সাথে রচয়িতা জন্য তাই ২ OB অবস্থা সক্রিয় যেখানে.
এবং যদি আপনি সত্যিই পেতে পারেন কোনো সাথে অভিনব
সম্পর্কিত জিজ্ঞাস্য এর আপনি গড়ে তুলতে চাই.
কিন্তু, ঠিক এখন, আমরা চলুন শুধু প্রশিক্ষক লাগিয়া থাকা
এবং আমরা যে মান ফিরে করছি
আমি তখন তারপর পরবর্তী উচিত সব কোর্সের লোড আছে
আপ সঠিকভাবে.
আর একটি ত্রুটি ছিল যে চেন কোন পদক্ষেপ এ,
এটা ধরা নিচে ঝাঁপ হবে.
সুতরাং আসুন এগিয়ে যান এবং যে চালানো যাক.
তাই প্রতিটি সময় - অসদৃশ পিএইচপি, এক downside হল
"নোড, কারণ" একটি দীর্ঘ চলমান হয় প্রক্রিয়া, আপনি আসলে প্রয়োজন
নোড প্রক্রিয়া বন্ধ করার জন্য আপনি আপনার কোড আপডেট হিসাবে,
কারণ এটা যে এর সংস্করণ চালানোর সময় চলমান, হয়
সংস্করণ লোড ছিলেন কোড
না যখন শুরু আপনি কিরুপ
আপনার কোড আপডেট তারপর থেকে সঙ্গে.
ঠিক আছে. আমরা একটি ব্রেকপয়েন্ট সেট করব এখানে, এখানে এবং রিফ্রেশ.
[বিরাম]
ওহ, আমি আসলে না নয়তো এই পৃষ্ঠাটি রিফ্রেশ
তাই এটা পুরানো প্রক্রিয়া ছিল.
তাই আপনি যদি উভয় এই রিফ্রেশ করুন এবং নোড ইন্সপেক্টর.
তাই এখন আমরা কোর্স দেখুন.
আমরা শুধু নমুনা নিতে হলে এই মডেলের এক,
আমরা দেখতে পারেন যে সম্পর্ক বস্তুর খালি, কিন্তু এখন -
এবং আপনার প্রয়োজন যে কারণে ব্রেকপয়েন্ট সেট ভাল,, হয়
আমি আপনি করতে পারেন যে উল্লেখ করেছে স্ট্যাক ট্রেস মধ্যে তিড়িং লাফ
এবং, আপনি জানেন দেখতে যেখানে এটি অ্যাপ্লিকেশন যাচ্ছে.
তাই এখন আমি কি দেখতে পারেন লোড পদ্ধতি ঘটছে,
যা আমি সংজ্ঞায়িত করেছি সংগ্রহের উপর.
এটা ধরণের "আগ্রহী লোড একটি ইতিমধ্যে "সম্মুখের সম্পর্ক.
এবং আপনি মাধ্যমে পইঠা পারেন এবং পাতিপাতি দেখুন
এই জিনিস যেখানে যা মহান যাচ্ছে.
আপনি কিছু থেকে থাকে যে, আপনার কোডের ভাঙা হচ্ছে
এটা কিছু ত্রুটি নিক্ষেপ এবং এর আপনি, আমি সত্যিই চাই মত হন
যেখানে এই যাচ্ছে দেখতে.
কিন্তু যত তাড়াতাড়ি আপনি পাতিত হিসাবে কিছু এসিনক্রোনাস, -
এটা পরের যায় ইভেন্ট লুপ টিক্
এবং আপনি আপনার হারান - আপনি আপনার জায়গা হারান
নোড পরিদর্শক মধ্যে.
সুতরাং আপনি বলতে হবে, "ঠিক আছে, আমি এই হারান একবার,
এটা এখন বন্ধ করা প্রয়োজন আবার এই লাইনে. "
আমি আঘাত রাখা হলে 'কারণ নিচে, স্ট্যাকের নিচে,
এটা শেষ পর্যন্ত থাকতে হবে ঠিক আমি এই সেট না করে দূরে চলে গেছে
22 নীল বিভাজক রেখা রেখায়.
তাই এখন, আমি যদি এখানে কোর্স এ,
এটা সম্পর্ক নেভিগেশন উচিত প্রশিক্ষক
এবং তারপর আছে প্রশিক্ষক তাদের জোড়া.
সুতরাং, আপনি আমি ফিরে দেখতে পারেন প্রথম প্রতিশ্রুতি থেকে একটি প্রতিশ্রুতি
এবং তারপর আপনি ক্রমাগত পারেন লাইন যে ডাউন করবেন.
তাই বিভিন্ন প্রতিশ্রুতি, লাইব্রেরি অঙ্গীকার,
আমি ব্যবহার Bluebird নামক এক যা সত্যিই দরকারী.
এটা এই সুন্দর অনেক অ্যাডস এসিনক্রোনাস পরিবর্তন করার জন্য -
কল ব্যাক পরিবর্তন স্টাফ মধ্যে বেস কোড
যে প্রতিশ্রুতি দিয়ে ভাল কাজ করে.
কিন্তু - দুঃখিত [শ্রবণাতীত] কি আমি সেখানে এটা বলতে হচ্ছে.
এর কটাক্ষপাত করা যাক যদিও এ -
তাই এর একটি ছিল বলা যাক সমস্যা কিছু আনয়ন যখন.
তাই আমি এই অন্যান্য রুট আছে বলা অবশ্যই আইডি খুঁজে.
সুতরাং আসুন কোর্স 2 না দেওয়া.
আমি পেতে পারি - JSON অবশ্যই.
এবং এই [শ্রবণাতীত] আছে.
[বিরাম]
আমি এখানে কিছু ভুল গন্ধ.
3000 উপর, আমি ছিল না ক্রোম পরিদর্শক ট্যাব.
ঠিক আছে. সুতরাং আসুন যান কোর্স - JSON কোর্স 1.
এবং এই মাত্র JSON মধ্যে ফেরৎ বিন্যাস, অবশ্যই লোড
কিছু প্রশিক্ষক সঙ্গে চলে.
কিন্তু আমি চেয়েছি উদাহরণ এখানে দিতে অনুপস্থিত
আমি JSON অবশ্যই আইডি করছেন.
এবং আনা পরামিতি মধ্যে, আমি সত্য প্রয়োজন উল্লেখ করছি
যে একটি বিকল্প যা বইয়ের থাকটি মধ্যে নথিভুক্ত
, যদি যেখানে এটি ", যে এর বলছে আমি এই কোর্স চেষ্টা এবং খুঁজে
এবং এটি আছে না তারপর একটি ত্রুটি নিক্ষেপ করা. "
এবং যে দ্বারা ধরা হবে ছিটকিনি এখানে নিচে ব্লক.
সুতরাং আসুন এগিয়ে যান এবং ফিরে তিড়িং লাফ নোড পরিদর্শক মধ্যে এবং চেষ্টা করুন
এবং এই বিরতি এবং আমরা পেয়েছিলাম তা দেখতে.
সুতরাং আসুন একটি বিরতি সেট যাক এখানে JSON কোর্স.
ঠিক আছে.
আমি JSON কোর্স যান এবং করব আমি শুধু কিছু রাখা হবে -
[বিরাম]
এটা একটা সামান্য চতুর হতে পারেন কখনও কখনও আপনি চেষ্টা করছেন
পরিচালনা করা যা এক রিফ্রেশ করা হয়েছে
এবং যা নেই - দেখুন.
সুতরাং ত্রুটি কলিং এর খালি প্রতিক্রিয়া.
[বিরাম]
এর এখানে একটি ডিবাগার নিক্ষেপ করা.
কারণ এর কিভাবে নোড আসলে সেরা অনুকূল
জাভাস্ক্রিপ্ট রানটাইম জন্য সার্ভারে যাতে দ্রুত করা,
কখনো কখনো নোড ডিবাগার আপনি চেষ্টা করার সময় কিছু ত্রুটি আছে
এবং পরিবর্তনশীল ব্রেকপয়েন্ট সেট এবং আসলে আপনি প্রয়োজন
একটি ডিবাগার এবং ব্যবহার করার জন্য না লাইন বাই লাইন.
সুতরাং আসুন দেখুন এই যদি আমরা চাই আমাদের পায়.
তাই আমি সেট, এছাড়া আরো কিছু নিয়ম JSON অবশ্যই আইডি,
এবং আমি সেখানে আমার ডিবাগার সেট করেছি
ছিটকিনি বিবৃতিতে নীচে.
এটি করা উচিত, সত্য প্রয়োজন পান - ঠিক আছে, সেখানে আমরা যেতে, কপর্দকশূন্য.
সুতরাং, এখন আমি দেখতে পারেন এটা থামানো যে
এই চূড়ান্ত ধরা ব্লক এ withRelated কারণ -
বা কারণ সত্য প্রয়োজন নির্দিষ্ট এবং কোন কোর্স নেই
এই বৃহৎ এর আইডি দিয়ে একটি ব্যতিক্রম মাধ্যমে সংখ্যা
এখন Emessage যা.
এবং জাভাস্ক্রিপ্ট মধ্যে প্রতিটি ত্রুটি একটি স্ট্যাক সম্পত্তি আছে
যে এটি সঙ্গে বরাবর আসে.
সুতরাং এটা প্রায়ই দরকারী উদাহরণস্বরূপ করার জন্য,
e.stack লগ আউট কনসোল.
আর আমি আসলে দেখতে পারেন আমি একটি ত্রুটি আঘাত.
তাই আমি ত্রুটি খালি পেতে প্রতিক্রিয়া, যে বার্তা
যে বইয়ের থাকটি মাধ্যমে পাঠানো হয়েছিল.
কিন্তু এখন, আমি একবার দেখে নিতে পারেন , কল এ স্ট্যাকের এ এবং দেখুন
যে বইয়ের থাকটি মধ্যে উপভাষায় এসকিউএল মডেল 83,
এই খালি প্রতিক্রিয়া ত্রুটি নিহিত ছিল.
এবং এই হল যেখানে আমি উল্লেখ, এটা ডট বেনামী এর
এটি একটি বেনামী কারণ ফাংশন.
যে একটি নাম ফাংশন ছিল আপনি ভাল ধারনা আছে
আসলে কাজ করতে যা যেতে না করেও মাধ্যমে
model.js কোড মধ্যে.
এটা হতে সেসব যদিও মোটামুটি মোটামুটি পাঠযোগ্য,
তাই আমি যে অনলাইন দেখতে পারেন.
কি তারা বলতে থাকেন আমার লাইন 83 ছিল.
সুতরাং, যদি options.require এবং প্রতিক্রিয়া অস্তিত্ব ছিলো না,
এটি এখন একটি নতুন ছোঁড়া খালি প্রতিক্রিয়া ত্রুটি.
সুতরাং আপনি বেশ দেখতে পারেন যে কাজ করে সহজবোধ্য.
আর অভ্যন্তরীণভাবে বইয়ের থাকটি মধ্যে,
শুধু একটি সম্পূর্ণ সেখানে থাকেন প্রতিশ্রুতি ব্যবহার গুচ্ছ.
সুতরাং আপনি নির্দিষ্ট করতে পারেন Promise.method
Bluebird গ্রন্থাগারের সঙ্গে সঠিক প্রেক্ষাপটে যা রাখে
এই যখন ফিরে একটি প্রতিশ্রুতি.
এবং তাই আমি আছে - আমি বাঁধাই করছি এই একই মান
আমি উল্লেখ চাই কি এর আগে, কিন্তু প্রতিশ্রুতি ব্যবহার
এবং তারপর আমি করতে পারেন - নতুন.
এটা অ্যাসিঙ্ক্রোনাস হতে পারে বা না আমি চাই.
এবং তারপর আমি কিছু না অন্যান্য বিষয় যা হতে পারে
অথবা অ্যাসিঙ্ক্রোনাস করা এবং না পারে তাহলে এই নিচে জাম্প প্রকারের.
সুতরাং Promise.all একটি সাহায্যকারী হয় জনপ্রিয় লাইব্রেরি অনেক আছে
আপনি একটি থাকতে পারে যেখানে সম্ভাব্য may এর অ্যারে
বা প্রতিশ্রুতি নাও হতে পারে.
এবং ঐ সমস্ত একবার সম্পন্ন, আপনি ফিরে যে
এবং তারপর এটি জাম্প পরের লাইন
এবং আপনি কিভাবে এটা সত্যিই দেখতে পারেন পিরামিড আউট flattens
আপনি পেতে যে, তার পরিচিত হিসাবে কলব্যাক জাহান্নাম
আপনি সবকিছু করছেন করছি রেখা দ্বারা callbacks লাইন দিয়ে.
কাছাকাছি পেতে উপায় আছে যে কিন্তু প্রতিশ্রুতির এক
আমার মতে সবচেয়ে ভাল উপায়
সত্যিই আপনার কোড রাখা পরিষ্কার এবং পড়তে সহজ.
সুতরাং যে শুধুমাত্র একটি ছোট জাভাস্ক্রিপ্ট পরিচিতি
এবং বইয়ের থাকটি থেকে এবং সাধারণ Knex.
এবং, কোন প্রশ্ন আছে, আমি এটা উপাদান একটি টন জানি
সাজানোর চেষ্টা এবং কভার করতে বিশেষ করে ভাষার থেকে,
আপনি যে সবচেয়ে অসদৃশ তাই আমি শুধু চেয়েছি সঙ্গে পরিচিত
এটি তৈরি করতে যাতে কমপক্ষে যদি আপনি সমস্যা হচ্ছে করছি
আপনার কোড সঙ্গে, আপনি ধরণের মধ্যে তিড়িং লাফ পারেন -
যে আমি যা করতে চাই কি, হয় ধরণের লাইব্রেরি মধ্যে তিড়িং লাফ
আমি ব্যবহার করে এবং দেখতে করছি জিনিস গঠিত হয়.
আমি উল্লেখ ছিল এক আছে তার আগে Backbone.js বলা
এবং প্রকৃতপক্ষে এটা [শ্রবণাতীত] ক্লায়েন্ট পাশ
মডেল ভিউ দিতে সাহায্য করার জন্য নিয়ন্ত্রক কাঠামো
আপনার কোড করা.
কিন্তু আসলে এটি আছে সটীক ডকুমেন্টেশন উৎস
যা আপনি ধরণের দেখতে পারবেন.
এটা ভালোভাবে সত্যিই নথিভুক্ত, কি, ঘটছে
এটি উদ্দীপক কিভাবে Ajax কার্যকারিতা
ইভেন্ট কার্যকারিতা বা বা মডেল ও স w সাজানোর
এর কি ব্যাখ্যা প্রক্রিয়ায় যাওয়া.
এবং আপনি বুঝতে হলে জাভাস্ক্রিপ্ট বুনিয়াদি
prototypal উত্তরাধিকার মত এবং ফাংশন ব্যবহার করা হয় ঠিক কিভাবে
বস্তু এবং মান উভয় হিসাবে ও ক্লাস এবং সবকিছু.
এটা অনেক সহজ করে তোলে কি ঘটছে বুঝতে
মধ্যে সম্ভাব্য প্রথম আপনি ব্যবহার করছেন যে লাইব্রেরি
এবং ডিবাগার কোড এবং পারবেন আপনার মাথা banging করা যাও
প্রাচীর বিরুদ্ধে কারণ আপনি বোঝেন না, কিভাবে
বিভিন্ন টুকরা তাই কাজ করছি.