title
Node JS Full Course - Learn Node.js in 7 Hours | Node.js Tutorial for Beginners | Edureka

description
🔥 Node.js Certification Training (Use Code "𝐘𝐎𝐔𝐓𝐔𝐁𝐄𝟐𝟎"): https://www.edureka.co/nodejs-certification-training This Edureka Node.js Full Course video will help you in learn Node.js along with practical demonstration. This Node.js Tutorial for Beginners is ideal for both beginners as well as professionals who want to master the most prominently used javascript backend framework. Below are the topics covered in this node.js tutorial video: 00:00 Introduction 2:32 What is Node.js? 3:22 Client-Server Architecture 4:12 Multi-Threaded Model 6:13 Single-Threaded Model 7:43 Multi-Threaded vs Event-Driven 9:45 Uber Old Architecture 11:10 Uber New Architecture 12:30 What is Node.js? 13:05 Sucess Stories 14:20 Node.js Trend 14:40 Node.js Features 16:25 Node.js Installation 16:50 Node.js First Example 17:30 Blocking vs Non-blocking 18:50 Demo 23:50 Node.js Modules 23:50 NPM 25:10 Global Objects 26:55 File System 30:30 Callbacks 31:45 Event 33:05 HTTP 34:50 Hands On 1:09:45 Node.js Tutorial 1:10:45 What is Node.js? 1:12:10 Features of Node.js 1:13:00 Node.js Architecture 1:14:55 NPM(Node Package Manager) 1:16:20 Node.js Modules 1:16:30 Node.js Modules Types 1:16:35 Core Modules 1:16:55 Local Modules 1:17:10 3rd Party Modules 1:18:35 JSON File 1:23:30 Data Types 1:25:35 Variables 1:26:40 Operators 1:27:45 Functions 1:29:10 Objects 1:29:55 File Systems 1:33:50 Events 1:34:20 HTTP Module 1:40:02 Events 1:44:37 HTTP Module 1:45:27 Creating a Web Server using Node.js 1:45:42 Express.js 1:46:57 Demo 1:58:37 Node.js NPM Tutorial 1:59:37 What is NPM? 2:03:12 Main Functions of NPM 2:04:27 Need For NPM 2:08:07 NPM Packages 2:17:42 NPM Installation 2:18:12 JSON File 2:31:32 Node.js Express Tutorial 2:32:02 Introduction to Express.js 2:32:32 Features of Express.js 2:35:27 Getting Started with Express.js 2:39:42 Routing Methods 2:44:57 Hands-On 2:48:12 Building RESTful API with Node.js 2:48:27 What is REST API? 2:49:42 Features of REST API 2:51:12 Principles of REST API 2:56:37 Methods of REST API 2:59:52 Building REST API with Node.js 3:24:07 Node.js MySQL Tutorial 3:24:32 What is MySQL? 3:25:13 Advantages of Using MySQL with Node.js 3:27:38 MySQL Installation 3:44:23 Node.js MongoDB Tutorial 3:44:58 What is NoSQL? 3:47:53 NoSQL Databases 3:48:38 Introduction to MongoDB 3:52:48 Features of MongoDB 3:53:03 MongoDB Installation 4:36:08 Node.js Docker Tutorial 4:36:38 What is Docker? 4:39:13 Docker Working 4:41:43 Docker Basics 4:41:48 DockerFile 4:42:03 Docker Images 4:42:23 Docker Container 4:44:38 Why use Node.js with Docker? 4:45:18 Demo: Node.js with Docker 4:58:38 MEAN Stack Application Tutorial 4:59:18 What is MEAN Application? 4:59:53 MongoDB 5:00:28 Express 5:01:13 Angular 5:01:23 Node.js 5:02:17 RESTful API 5:03:02 Contact List MEAN App 6:17:57 Node.js Interview Questions -------------------------------------------------------------------------------------------------------- Instagram: https://www.instagram.com/edureka_learning Facebook: https://www.facebook.com/edurekaIN/ Twitter: https://twitter.com/edurekain LinkedIn: https://www.linkedin.com/company/edureka ---------------------------------------------------------------------------------------------------------- Got a question on the topic? Please share it in the comment section below and our experts will answer it for you. For more information, please write back to us at sales@edureka.in or call us at IND: 9606058406 / US: 18338555775 (toll-free).

detail
{'title': 'Node JS Full Course - Learn Node.js in 7 Hours | Node.js Tutorial for Beginners | Edureka', 'heatmap': [{'end': 1527.126, 'start': 1014.183, 'weight': 1}, {'end': 2284.223, 'start': 1772.085, 'weight': 0.747}, {'end': 10149.821, 'start': 9891.594, 'weight': 0.712}, {'end': 13195.657, 'start': 12934.839, 'weight': 0.708}], 'summary': "Edureka's node.js full course provides a comprehensive 7-hour overview covering 10 modules, including npm, express, restful api development, database integration, dockerization, mean stack, event handling, npm essentials, project setup, rest crud api, api development, mysql and mongodb integration, mongodb benefits and implementation, docker and mean stack, client-side development with angular 2, and node.js concepts and insights.", 'chapters': [{'end': 250.783, 'segs': [{'end': 184.086, 'src': 'embed', 'start': 153.417, 'weight': 0, 'content': [{'end': 154.117, 'text': 'hello everyone.', 'start': 153.417, 'duration': 0.7}, {'end': 156.319, 'text': 'this is shubham from edureka.', 'start': 154.117, 'duration': 2.202}, {'end': 159.561, 'text': "in today's session we are going to learn what is node.js.", 'start': 156.319, 'duration': 3.242}, {'end': 162.724, 'text': "so, without any further delay, let's move on and look at the agenda for today's session.", 'start': 159.561, 'duration': 3.163}, {'end': 169.338, 'text': "In this session, we'll first understand the client-server architecture and multi-thread model followed in client-server architecture.", 'start': 163.775, 'duration': 5.563}, {'end': 176.462, 'text': "Then we'll look at the limitations of multi-thread architecture and we'll understand how Node.js solved those limitations using single-thread architecture.", 'start': 169.998, 'duration': 6.464}, {'end': 181.245, 'text': "Further moving on, we'll understand what is Node.js with the help of Uber case study.", 'start': 177.302, 'duration': 3.943}, {'end': 184.086, 'text': "We'll look at some of the Node.js success stories.", 'start': 181.985, 'duration': 2.101}], 'summary': 'Shubham from edureka introduces node.js, discussing its single-thread architecture and success stories like uber.', 'duration': 30.669, 'max_score': 153.417, 'thumbnail': ''}, {'end': 216.552, 'src': 'embed', 'start': 189.565, 'weight': 4, 'content': [{'end': 194.586, 'text': "And at last, we'll take a look at a demo which will help you to understand how to work with Node.js projects.", 'start': 189.565, 'duration': 5.021}, {'end': 198.887, 'text': 'So now let us move on to our first topic, which is why Node.js?', 'start': 195.607, 'duration': 3.28}, {'end': 204.069, 'text': "We'll first understand the client server architecture and know how client interacts with the server.", 'start': 200.028, 'duration': 4.041}, {'end': 211.271, 'text': 'In this architecture, we have users who interact with the client machine like laptops, desktops, mobile phones, et cetera.', 'start': 204.709, 'duration': 6.562}, {'end': 216.552, 'text': 'So while interacting with the client machine, user makes or generates requests which are then sent to the server.', 'start': 211.851, 'duration': 4.701}], 'summary': 'Demo on working with node.js projects, understanding client-server architecture, and user interactions.', 'duration': 26.987, 'max_score': 189.565, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk189565.jpg'}], 'start': 7.119, 'title': 'Node.js course and overview', 'summary': "Provides a comprehensive overview of edureka's node.js full course, covering 10 modules that include installation, npm, express module, restful api development, database integration, dockerization, mean stack application, and interview preparation.", 'chapters': [{'end': 153.417, 'start': 7.119, 'title': 'Node.js full course overview', 'summary': "Provides a comprehensive overview of edureka's node.js full course, covering 10 modules that include installation, npm, express module, restful api development, database integration, dockerization, mean stack application, and interview preparation.", 'duration': 146.298, 'highlights': ['The course is divided into 10 distinct modules, covering various topics such as NPM, Express module, RESTful API development, database integration, Dockerization, MEAN stack application, and interview preparation. The course is structured into 10 modules, including NPM, Express module, RESTful API development, database integration, Dockerization, MEAN stack application, and interview preparation.', "Node.js is one of the most heavily used JavaScript frameworks for server-side web application development, developed on Chrome's version 8 JavaScript engine, offering the capability to build complex and powerful applications without complex code. Node.js is a widely used JavaScript framework for server-side web application development, providing the capability to build complex applications without complex code.", 'Module 9 focuses on building a MEAN stack application, which involves MongoDB, ExpressJS, Angular, and NodeJS, while the 10th module covers frequently asked interview questions in Node.js interviews. Module 9 covers building a MEAN stack application involving MongoDB, ExpressJS, Angular, and NodeJS, while the 10th module addresses frequently asked interview questions in Node.js interviews.', 'The course offers comprehensive training on Node.js, including installation, basic concepts, NPM, Express module, RESTful API, database integration, Dockerization, MEAN stack application, and interview preparation. The course provides comprehensive training on Node.js, covering installation, basic concepts, NPM, Express module, RESTful API, database integration, Dockerization, MEAN stack application, and interview preparation.']}, {'end': 250.783, 'start': 153.417, 'title': 'Introduction to node.js', 'summary': 'Introduces node.js, explaining its single-thread architecture and discussing its implementation through a case study. it also covers the importance of node.js modules and concludes with a demo, highlighting the client-server architecture and interactions with a real-world example.', 'duration': 97.366, 'highlights': ['Node.js solved the limitations of multi-thread architecture using single-thread architecture. Node.js addresses the limitations of multi-thread architecture by utilizing a single-thread architecture, enhancing efficiency and scalability.', 'Explanation of Node.js using the Uber case study and its success stories. The chapter provides an understanding of Node.js through the Uber case study and showcases its success stories, offering practical insights into its real-world applications.', 'Importance of Node.js modules for working with Node.js projects. The significance of Node.js modules is highlighted, emphasizing their crucial role in developing and managing Node.js projects effectively.', 'Demonstration of working with Node.js projects, providing practical insights into its application. A demo is presented to illustrate the actual implementation of Node.js projects, offering hands-on experience and practical understanding.', 'Explanation of client-server architecture and interactions using the Uber case study. The client-server architecture is explained, demonstrating interactions through the Uber example, offering a real-world perspective on the communication process.']}], 'duration': 243.664, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk7119.jpg', 'highlights': ['The course is divided into 10 distinct modules, covering various topics such as NPM, Express module, RESTful API development, database integration, Dockerization, MEAN stack application, and interview preparation.', "Node.js is one of the most heavily used JavaScript frameworks for server-side web application development, developed on Chrome's version 8 JavaScript engine, offering the capability to build complex and powerful applications without complex code.", 'Module 9 focuses on building a MEAN stack application, which involves MongoDB, ExpressJS, Angular, and NodeJS, while the 10th module covers frequently asked interview questions in Node.js interviews.', 'The course offers comprehensive training on Node.js, including installation, basic concepts, NPM, Express module, RESTful API, database integration, Dockerization, MEAN stack application, and interview preparation.', 'Node.js solved the limitations of multi-thread architecture using single-thread architecture.', 'Explanation of Node.js using the Uber case study and its success stories.', 'Importance of Node.js modules for working with Node.js projects.', 'Demonstration of working with Node.js projects, providing practical insights into its application.', 'Explanation of client-server architecture and interactions using the Uber case study.']}, {'end': 1099.045, 'segs': [{'end': 330.772, 'src': 'embed', 'start': 306.529, 'weight': 4, 'content': [{'end': 313.133, 'text': 'In that situation, a new incoming request has to wait until a thread processes the last request and return back the result.', 'start': 306.529, 'duration': 6.604}, {'end': 320.203, 'text': 'So this is an situation of scalability which could be resolved by adding more resources and creating more threads inside the thread pool.', 'start': 313.897, 'duration': 6.306}, {'end': 322.044, 'text': 'But this is a costly solution guys.', 'start': 320.643, 'duration': 1.401}, {'end': 325.447, 'text': 'We have an easier way of doing that using single thread model.', 'start': 322.465, 'duration': 2.982}, {'end': 330.772, 'text': "But before going to single thread model we'll first understand the second limitation of multi-thread model.", 'start': 325.928, 'duration': 4.844}], 'summary': 'Scalability issue can be resolved by adding more resources and threads, but single thread model offers an easier solution.', 'duration': 24.243, 'max_score': 306.529, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk306529.jpg'}, {'end': 757.569, 'src': 'embed', 'start': 718.715, 'weight': 1, 'content': [{'end': 722.976, 'text': 'Program can be inspected and errors can be addressed on the fly without requiring a restart.', 'start': 718.715, 'duration': 4.261}, {'end': 726.057, 'text': 'So developer can publish and deploy the new code constantly.', 'start': 723.216, 'duration': 2.841}, {'end': 729.347, 'text': 'Now, as we know, Node is open source,', 'start': 726.784, 'duration': 2.563}, {'end': 734.872, 'text': 'so the active open source community continuously optimizes the technology and it get better and better every time.', 'start': 729.347, 'duration': 5.525}, {'end': 741.759, 'text': 'So now what happened, Uber is now doing over two million RPCs per second at peak across Node.js fleet.', 'start': 735.973, 'duration': 5.786}, {'end': 750.207, 'text': 'So now you can understand how Node.js helped Uber to eliminate all the limitations that they were facing while using their old architecture.', 'start': 742.579, 'duration': 7.628}, {'end': 752.768, 'text': 'So now let us understand what is Node.js.', 'start': 751.067, 'duration': 1.701}, {'end': 757.569, 'text': "Node.js is JavaScript runtime built on top of Chrome's V8 JavaScript engine.", 'start': 753.388, 'duration': 4.181}], 'summary': "Node.js allows continuous deployment, improving uber's rpcs to over 2 million per second, eliminating limitations.", 'duration': 38.854, 'max_score': 718.715, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk718715.jpg'}, {'end': 970.702, 'src': 'embed', 'start': 927.06, 'weight': 0, 'content': [{'end': 933.884, 'text': "We will discuss about it in a while and in detail but before that, we'll look at the other features of node.js.", 'start': 927.06, 'duration': 6.824}, {'end': 941.905, 'text': "As Node.js is built on top of Google Chrome's V8 JavaScript engine, so its library is very fast in code execution.", 'start': 935.299, 'duration': 6.606}, {'end': 944.948, 'text': 'Then we have single thread but highly scalable.', 'start': 942.786, 'duration': 2.162}, {'end': 949.431, 'text': 'So Node.js follows a single thread mechanism as we know with event looping.', 'start': 945.528, 'duration': 3.903}, {'end': 958.339, 'text': 'It is highly scalable because event mechanisms help the server to respond in a non-blocking way and makes the server highly scalable as opposed to traditional servers.', 'start': 950.052, 'duration': 8.287}, {'end': 960.241, 'text': 'Then we have no buffering.', 'start': 959.22, 'duration': 1.021}, {'end': 965.7, 'text': 'Node.js cuts down the overall processing time while uploading a video or audio file.', 'start': 961.198, 'duration': 4.502}, {'end': 968.161, 'text': 'Node.js application never buffers any data.', 'start': 966.28, 'duration': 1.881}, {'end': 970.702, 'text': 'The application simply outputs the data in chunks.', 'start': 968.521, 'duration': 2.181}], 'summary': 'Node.js uses v8 engine, single-threaded, highly scalable, non-buffering, fast data processing.', 'duration': 43.642, 'max_score': 927.06, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk927060.jpg'}], 'start': 252.064, 'title': 'Node.js advantages and success stories', 'summary': 'Discusses the limitations of the multi-thread model and how node.js resolves them. it highlights how node.js helped uber to handle over two million rpcs per second and its success stories at netflix, paypal, godaddy, linkedin, and ebay. it also covers the rising job trends and features of node.js.', 'chapters': [{'end': 696.6, 'start': 252.064, 'title': 'Multi-thread model limitations and node.js solution', 'summary': "Discusses the limitations of the multi-thread model, such as thread exhaustion, bottleneck situations, and context switching, and explains how node.js resolves these issues using a single-threaded, event-driven model. it also highlights the uber old architecture's challenges and how node.js addresses them.", 'duration': 444.536, 'highlights': ['In multi-thread model, thread exhaustion occurs when the limited number of threads in the thread pool are unable to handle millions of requests per second, leading to a situation where new incoming requests have to wait until a thread processes the last request, impacting server scalability. Thread exhaustion in multi-thread model due to limited thread pool capacity.', 'The multi-thread model creates bottleneck situations when threads acquire locks on shared resources, causing other threads to be blocked, ultimately affecting the response time of the server. Bottleneck situations caused by thread locks on shared resources in multi-thread model.', 'Node.js resolves the limitations of the multi-thread model by using a single-threaded, event-driven model where a single thread handles all events from the event queue, preventing blocked requests and context switching between threads. Node.js resolves multi-thread model limitations through single-threaded, event-driven model.', "In Uber's old architecture, using PHP as the server-side scripting language with a multi-thread model resulted in car dispatch operations being handled by separate threads, leading to the issue of multiple users being allocated the same car. Challenges faced in Uber's old architecture due to multi-thread model and PHP usage."]}, {'end': 1099.045, 'start': 697.688, 'title': 'Node.js at uber & success stories', 'summary': 'Discusses how node.js helped uber to handle over two million rpcs per second, along with its success stories at netflix, paypal, godaddy, linkedin, and ebay. it also highlights the rising job trends and features of node.js such as asynchronous and event-driven, single thread but highly scalable, no buffering, and installation steps.', 'duration': 401.357, 'highlights': ['Node.js handling over two million RPCs per second at Uber Uber is now doing over two million RPCs per second at peak across Node.js fleet, demonstrating how Node.js helped Uber to eliminate limitations of their old architecture.', 'Success stories of Node.js at various companies Node.js has been successfully used at companies like Netflix, PayPal, GoDaddy, LinkedIn, and eBay for transforming websites, developing applications, and achieving real-time requirements.', 'Rising job trends in Node.js The graph shows a rising curve in job postings per year for Node.js, indicating its increasing demand in server-side web development.', 'Features of Node.js The features of Node.js include asynchronous and event-driven nature, single thread but highly scalable architecture, no buffering, and easy installation steps.']}], 'duration': 846.981, 'thumbnail': '', 'highlights': ['Node.js handling over two million RPCs per second at Uber', 'Node.js resolves the limitations of the multi-thread model through single-threaded, event-driven model', 'Success stories of Node.js at various companies like Netflix, PayPal, GoDaddy, LinkedIn, and eBay', 'Rising job trends in Node.js with increasing demand in server-side web development', 'Bottleneck situations caused by thread locks on shared resources in multi-thread model', 'Thread exhaustion in multi-thread model due to limited thread pool capacity', "Challenges faced in Uber's old architecture due to multi-thread model and PHP usage", 'Features of Node.js including asynchronous and event-driven nature, single thread but highly scalable architecture, no buffering, and easy installation steps']}, {'end': 2072.164, 'segs': [{'end': 1283.04, 'src': 'embed', 'start': 1211.803, 'weight': 0, 'content': [{'end': 1216.805, 'text': "We'll save this file, we'll create a new file with the name of text.tst.", 'start': 1211.803, 'duration': 5.002}, {'end': 1224.448, 'text': "Now I'll write welcome to Edureka.", 'start': 1222.887, 'duration': 1.561}, {'end': 1231.708, 'text': "I'll save this file.", 'start': 1230.868, 'duration': 0.84}, {'end': 1234.749, 'text': "Then we'll go to our node.js command prompt.", 'start': 1232.728, 'duration': 2.021}, {'end': 1242.091, 'text': "We'll execute this file using node and the file name was blocking.js.", 'start': 1236.729, 'duration': 5.362}, {'end': 1251.113, 'text': 'So now you can see here that the first output was welcome to Eureka, which was there in text.txt, and then it printed end here,', 'start': 1242.811, 'duration': 8.302}, {'end': 1252.633, 'text': 'which was the last statement.', 'start': 1251.113, 'duration': 1.52}, {'end': 1253.833, 'text': 'You can see here.', 'start': 1253.193, 'duration': 0.64}, {'end': 1256.734, 'text': 'Now let us work with a non-blocking.js.', 'start': 1254.533, 'duration': 2.201}, {'end': 1261.273, 'text': "So we'll again create a file, we'll name the file as non-blocking.js.", 'start': 1257.512, 'duration': 3.761}, {'end': 1273.117, 'text': 'Now we are again importing file system module from our node.js dependencies.', 'start': 1268.955, 'duration': 4.162}, {'end': 1283.04, 'text': 'So, as you can remember, guys, last time we used read file sync function, which made the function synchronous.', 'start': 1276.958, 'duration': 6.082}], 'summary': 'Creating and executing files in node.js, working with file system module, and using read file sync function for synchronous operations.', 'duration': 71.237, 'max_score': 1211.803, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk1211803.jpg'}, {'end': 1507.255, 'src': 'embed', 'start': 1482.135, 'weight': 2, 'content': [{'end': 1488.599, 'text': 'For an example, you can mention npm install express and it will install all the express modules inside your project.', 'start': 1482.135, 'duration': 6.464}, {'end': 1494.923, 'text': 'Then we have npm install module name hyphen g command which will install your module globally.', 'start': 1489.099, 'duration': 5.824}, {'end': 1498.965, 'text': 'We have a global scope so that you can install your command.', 'start': 1495.243, 'duration': 3.722}, {'end': 1503.788, 'text': 'you can install your module globally and you can use it in any of the projects you are working on.', 'start': 1498.965, 'duration': 4.823}, {'end': 1507.255, 'text': 'So now let us move to our next topic, which is globals.', 'start': 1504.634, 'duration': 2.621}], 'summary': 'Npm can install modules globally or within a project, facilitating universal usage.', 'duration': 25.12, 'max_score': 1482.135, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk1482135.jpg'}, {'end': 1579.752, 'src': 'embed', 'start': 1550.058, 'weight': 7, 'content': [{'end': 1556.302, 'text': 'and these timer functions in Node.js is an internal construct that calls a given function after a certain period of time.', 'start': 1550.058, 'duration': 6.244}, {'end': 1560.555, 'text': 'So we have three functions, which is set immediate, set interval, and set timeout.', 'start': 1556.912, 'duration': 3.643}, {'end': 1565.5, 'text': 'We just executed set timeout function as you can remember, guys, in our non-blocking code.', 'start': 1560.715, 'duration': 4.785}, {'end': 1571.285, 'text': 'So this set timeout function is used to execute a one-time callback after delay milliseconds.', 'start': 1566.34, 'duration': 4.945}, {'end': 1579.752, 'text': 'Then we have set interval function, which is used to define a time interval and will be executed after a certain interval of time is specified by you.', 'start': 1571.885, 'duration': 7.867}], 'summary': 'Node.js has timer functions: setimmediate, setinterval, and settimeout for executing callbacks and defining time intervals.', 'duration': 29.694, 'max_score': 1550.058, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk1550058.jpg'}, {'end': 1664.03, 'src': 'embed', 'start': 1632.583, 'weight': 6, 'content': [{'end': 1636.804, 'text': 'File input output is provided by simple wrappers around standard POSIX function.', 'start': 1632.583, 'duration': 4.221}, {'end': 1642.785, 'text': 'For an example, you can first create a file, you can read a file, you can write in a file, or you can open a file.', 'start': 1637.044, 'duration': 5.741}, {'end': 1647.246, 'text': 'Every method in FS module has asynchronous and synchronous forms.', 'start': 1643.825, 'duration': 3.421}, {'end': 1649.226, 'text': 'As we just saw,', 'start': 1648.046, 'duration': 1.18}, {'end': 1656.908, 'text': 'that we use a synchronous form while we are creating a blocking IO and we use the asynchronous form while we are creating a non-blocking IO.', 'start': 1649.226, 'duration': 7.682}, {'end': 1664.03, 'text': 'So the main difference is you have to use this sync keyword, which is used for synchronization, at the end of every function.', 'start': 1657.546, 'duration': 6.484}], 'summary': 'File input output methods include synchronous and asynchronous forms for creating blocking and non-blocking io.', 'duration': 31.447, 'max_score': 1632.583, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk1632583.jpg'}], 'start': 1099.617, 'title': 'Node.js concepts and modules', 'summary': 'Explains blocking and non-blocking io in node.js, covers modules, npm commands, and global objects, and discusses the file system, http module, and events, providing practical demonstrations and examples.', 'chapters': [{'end': 1423.147, 'start': 1099.617, 'title': 'Node.js blocking and non-blocking io', 'summary': 'Explains the concepts of blocking and non-blocking io in node.js, with a practical demonstration using file operations, showcasing how synchronous and asynchronous functions work, with a focus on the execution order and delays.', 'duration': 323.53, 'highlights': ['The chapter explains the concepts of blocking and non-blocking IO in Node.js The chapter introduces the concept of blocking and non-blocking IO in Node.js, providing a foundational understanding of the topic.', 'Practical demonstration using file operations to showcase synchronous and asynchronous functions A practical demonstration is provided by creating Node.js projects, using file operations to demonstrate the workings of synchronous and asynchronous functions.', 'Focus on execution order and delays in synchronous and asynchronous functions The chapter emphasizes the importance of understanding the execution order and delays in both synchronous and asynchronous functions, highlighting the differences in their behavior.']}, {'end': 1611.734, 'start': 1424.167, 'title': 'Node.js modules and globals', 'summary': 'Covers node.js modules, including npm commands for installing and managing packages, and explains global objects available in all modules, such as underscore dir name, file name, and timer functions like set timeout, set interval, and set immediate.', 'duration': 187.567, 'highlights': ['npm_install_global_modules NPM install module name hyphen g command installs modules globally, allowing their use in any Node.js project.', "npm_install_specific_module NPM install module name command enables the specific installation of a module, such as 'npm install express' to install all express modules in the project.", 'npm_install_dependencies NPM install command installs modules specified in package.json, creating a node modules folder and downloading all dependencies.', 'global_objects_scope Global objects are available in all modules, while local objects are limited to the project they are installed or used in.', 'timer_functions_description Node.js timer functions like set timeout, set interval, and set immediate are used for executing callbacks after a delay, defining time intervals, and executing immediate commands, respectively.']}, {'end': 2072.164, 'start': 1612.688, 'title': 'Node.js file system & http', 'summary': 'Covers the file system module in node.js, including functions for file input/output, asynchronous and synchronous forms, and callbacks. it also delves into the events module and http module, highlighting their usage and functionalities.', 'duration': 459.476, 'highlights': ['Node.js File System module functions The module covers file input/output functions like creating, reading, writing, and opening files, with asynchronous and synchronous forms.', 'Callback functions in Node.js The transcript explains callback functions as the asynchronous equivalent for a function, executed at the completion of each task, with error and data parameters.', 'Events module usage in Node.js The discussion covers the usage of the events module to create and emit custom events, with a detailed code explanation.', "HTTP module in Node.js The HTTP module's usage for creating client-server architecture and supporting HTTP protocol features is described, along with a code walkthrough."]}], 'duration': 972.547, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk1099617.jpg', 'highlights': ['The chapter explains the concepts of blocking and non-blocking IO in Node.js', 'Practical demonstration using file operations to showcase synchronous and asynchronous functions', 'Focus on execution order and delays in synchronous and asynchronous functions', 'npm_install_global_modules NPM install module name hyphen g command installs modules globally, allowing their use in any Node.js project', "npm_install_specific_module NPM install module name command enables the specific installation of a module, such as 'npm install express' to install all express modules in the project", 'npm_install_dependencies NPM install command installs modules specified in package.json, creating a node modules folder and downloading all dependencies', 'global_objects_scope Global objects are available in all modules, while local objects are limited to the project they are installed or used in', 'Node.js File System module functions The module covers file input/output functions like creating, reading, writing, and opening files, with asynchronous and synchronous forms', 'Callback functions in Node.js The transcript explains callback functions as the asynchronous equivalent for a function, executed at the completion of each task, with error and data parameters', 'Events module usage in Node.js The discussion covers the usage of the events module to create and emit custom events, with a detailed code explanation', "HTTP module in Node.js The HTTP module's usage for creating client-server architecture and supporting HTTP protocol features is described, along with a code walkthrough", 'timer_functions_description Node.js timer functions like set timeout, set interval, and set immediate are used for executing callbacks after a delay, defining time intervals, and executing immediate commands, respectively']}, {'end': 4169.863, 'segs': [{'end': 2256.797, 'src': 'embed', 'start': 2211.645, 'weight': 1, 'content': [{'end': 2214.927, 'text': "So now we'll go back and check whether this file has been created or not.", 'start': 2211.645, 'duration': 3.282}, {'end': 2217.188, 'text': "We'll go in example folder.", 'start': 2215.467, 'duration': 1.721}, {'end': 2220.45, 'text': 'Now you can see we have a package.json file over here, guys.', 'start': 2217.969, 'duration': 2.481}, {'end': 2222.331, 'text': "Now we'll clear the screen.", 'start': 2221.171, 'duration': 1.16}, {'end': 2227.855, 'text': "And now we'll just install all the dependencies that we are going to use in our project.", 'start': 2223.432, 'duration': 4.423}, {'end': 2232.61, 'text': 'So we need express.', 'start': 2231.09, 'duration': 1.52}, {'end': 2244.213, 'text': "So I have to go with npm install express and using hyphen hyphen save, we'll save this module or this dependency in my package.json file guys.", 'start': 2235.891, 'duration': 8.322}, {'end': 2249.695, 'text': "So now I'll show you my package.json file.", 'start': 2247.394, 'duration': 2.301}, {'end': 2256.797, 'text': "Now you can see inside this dependency, we haven't included this yet, but it has been automatically included.", 'start': 2251.235, 'duration': 5.562}], 'summary': 'Installed express module using npm, saved in package.json', 'duration': 45.152, 'max_score': 2211.645, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk2211645.jpg'}, {'end': 2429.446, 'src': 'embed', 'start': 2396.91, 'weight': 2, 'content': [{'end': 2401.515, 'text': 'Now first we have to import the downloaded dependencies which we are going to use in our project.', 'start': 2396.91, 'duration': 4.605}, {'end': 2404.297, 'text': "So I'll first download all the dependencies.", 'start': 2402.275, 'duration': 2.022}, {'end': 2410.343, 'text': "We are going to use express frameworks so I'm importing express frameworks so that we can use it.", 'start': 2405.699, 'duration': 4.644}, {'end': 2421.46, 'text': 'So now we have imported express framework which we are going to use in our project.', 'start': 2417.677, 'duration': 3.783}, {'end': 2429.446, 'text': 'Then we are going to just import routes which we will just create after this.', 'start': 2425.202, 'duration': 4.244}], 'summary': 'Imported express framework and created routes for project.', 'duration': 32.536, 'max_score': 2396.91, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk2396910.jpg'}, {'end': 2642.734, 'src': 'embed', 'start': 2603.023, 'weight': 7, 'content': [{'end': 2607.384, 'text': 'Okay guys, now let us create an app using express framework.', 'start': 2603.023, 'duration': 4.361}, {'end': 2615.006, 'text': 'Okay, now we are done specifying all the variables and importing the packages.', 'start': 2611.525, 'duration': 3.481}, {'end': 2617.047, 'text': "Now we'll go to our next step.", 'start': 2615.747, 'duration': 1.3}, {'end': 2628.822, 'text': "Now we'll use this app.set and we'll set the port number this application will run or this application will be hosted.", 'start': 2618.507, 'duration': 10.315}, {'end': 2631.605, 'text': "So we'll specify port.", 'start': 2630.143, 'duration': 1.462}, {'end': 2640.252, 'text': "We'll give process.env.port.", 'start': 2635.688, 'duration': 4.564}, {'end': 2642.734, 'text': 'And it should be 3000.', 'start': 2641.933, 'duration': 0.801}], 'summary': 'Creating an app using express framework, setting port to 3000.', 'duration': 39.711, 'max_score': 2603.023, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk2603023.jpg'}, {'end': 2730.676, 'src': 'embed', 'start': 2675.674, 'weight': 6, 'content': [{'end': 2677.555, 'text': 'and then the folder would be views.', 'start': 2675.674, 'duration': 1.881}, {'end': 2690.983, 'text': "Okay, guys, and at last, we'll set the engine So the view engine is Jade.", 'start': 2680.036, 'duration': 10.947}, {'end': 2696.886, 'text': 'We are going to use Jade.', 'start': 2695.745, 'duration': 1.141}, {'end': 2707.751, 'text': 'Now we are specifying that the app should use which all modules that we just imported now.', 'start': 2702.009, 'duration': 5.742}, {'end': 2711.553, 'text': 'So the first is bodypass.json for parsing.', 'start': 2708.432, 'duration': 3.121}, {'end': 2730.676, 'text': 'So we have bodypass.json, then we are going to use bodyparser.urlencoded so that we can pass our data in URLs.', 'start': 2711.573, 'duration': 19.103}], 'summary': 'Configured view engine as jade and specified use of bodyparser with bodyparser.urlencoded for data passing in urls.', 'duration': 55.002, 'max_score': 2675.674, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk2675674.jpg'}, {'end': 2972.638, 'src': 'embed', 'start': 2926.583, 'weight': 4, 'content': [{'end': 2934.305, 'text': "Now we'll again create app.post and this will be for the new contacts that we're inserting.", 'start': 2926.583, 'duration': 7.722}, {'end': 2937.897, 'text': 'So new underscore contacts.', 'start': 2935.996, 'duration': 1.901}, {'end': 2942.3, 'text': 'Sorry, new underscore contact.', 'start': 2940.459, 'duration': 1.841}, {'end': 2945.942, 'text': "And then again similarly we'll go with the callback function.", 'start': 2943.041, 'duration': 2.901}, {'end': 2948.604, 'text': 'The function should return request and response.', 'start': 2945.962, 'duration': 2.642}, {'end': 2953.447, 'text': "So after this we'll create this function.", 'start': 2950.946, 'duration': 2.501}, {'end': 2961.332, 'text': 'So the name would be request.body.name.', 'start': 2957.31, 'duration': 4.022}, {'end': 2972.638, 'text': 'And the phone would be request.bar.phone.', 'start': 2965.914, 'duration': 6.724}], 'summary': 'Creating a new contact using app.post for insertion, extracting name and phone data from the request body.', 'duration': 46.055, 'max_score': 2926.583, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk2926583.jpg'}, {'end': 3062.492, 'src': 'embed', 'start': 3014.15, 'weight': 9, 'content': [{'end': 3023.713, 'text': 'And at last, we are again defining a function for our error or your body and your header with three arguments.', 'start': 3014.15, 'duration': 9.563}, {'end': 3030.315, 'text': "Now I'll create and similarly I'll again check if you have error.", 'start': 3025.874, 'duration': 4.441}, {'end': 3036.337, 'text': 'Then request.send.', 'start': 3034.517, 'duration': 1.82}, {'end': 3042.399, 'text': 'Error creating contacts.', 'start': 3040.799, 'duration': 1.6}, {'end': 3048.321, 'text': 'Sorry, error creating contact, yes.', 'start': 3045.64, 'duration': 2.681}, {'end': 3051.102, 'text': "And then we'll go with return.", 'start': 3049.681, 'duration': 1.421}, {'end': 3062.492, 'text': "Then if there is no error, we'll send it the confirmation message to the user.", 'start': 3054.528, 'duration': 7.964}], 'summary': 'Defining a function for error handling and contact creation, then sending confirmation message.', 'duration': 48.342, 'max_score': 3014.15, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk3014150.jpg'}, {'end': 3281.488, 'src': 'embed', 'start': 3216.878, 'weight': 0, 'content': [{'end': 3230.367, 'text': "we'll give a break using br tag and we'll print phone number and it is body.phone.", 'start': 3216.878, 'duration': 13.489}, {'end': 3248.58, 'text': 'If we have this, if we have the body else, as rdoc equal to, should be no records found.', 'start': 3234.369, 'duration': 14.211}, {'end': 3253.866, 'text': 'No records found.', 'start': 3252.985, 'duration': 0.881}, {'end': 3261.293, 'text': 'Response.send for sending the response.', 'start': 3258.23, 'duration': 3.063}, {'end': 3265.738, 'text': "And we'll send rdoc.", 'start': 3264.657, 'duration': 1.081}, {'end': 3275.062, 'text': "Then we'll again go with app post.", 'start': 3273.24, 'duration': 1.822}, {'end': 3277.524, 'text': 'And the last part is deleting the contacts.', 'start': 3275.482, 'duration': 2.042}, {'end': 3281.488, 'text': 'So we are specifying delete underscore contact.', 'start': 3277.865, 'duration': 3.623}], 'summary': 'Code includes printing phone number and sending response, with deletion of contacts.', 'duration': 64.61, 'max_score': 3216.878, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk3216878.jpg'}, {'end': 4070.1, 'src': 'embed', 'start': 4040.548, 'weight': 8, 'content': [{'end': 4043.97, 'text': 'Then we have slash new contacts, using which we can view the contact.', 'start': 4040.548, 'duration': 3.422}, {'end': 4047.673, 'text': 'Then we have delete contact, using which we can delete a contact.', 'start': 4044.731, 'duration': 2.942}, {'end': 4057.037, 'text': "So now that we have created our app, we'll now go at the CouchDB address so that we can see the CouchDB.", 'start': 4048.735, 'duration': 8.302}, {'end': 4060.338, 'text': 'So the address is localhost5984.', 'start': 4057.477, 'duration': 2.861}, {'end': 4063.758, 'text': "Then we'll add utils so that we can view the tables.", 'start': 4060.658, 'duration': 3.1}, {'end': 4066.339, 'text': 'And these are the tables present inside our CouchDB.', 'start': 4064.139, 'duration': 2.2}, {'end': 4070.1, 'text': "So we'll now quickly go and execute our application.", 'start': 4067.219, 'duration': 2.881}], 'summary': 'The transcript covers creating, viewing, and deleting contacts, accessing couchdb, and viewing tables.', 'duration': 29.552, 'max_score': 4040.548, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk4040548.jpg'}], 'start': 2073.145, 'title': 'Setting up and using databases in node.js', 'summary': 'Covers setting up couchdb and cowsdb, creating a node.js server, installing dependencies, and integrating couchdb with an express application, resulting in successful data manipulation and management.', 'chapters': [{'end': 2141.322, 'start': 2073.145, 'title': 'Setting up and using couchdb', 'summary': 'Covers setting up a server to listen on port 3000 and installing couchdb on the system, followed by accessing and managing databases through the couchdb interface.', 'duration': 68.177, 'highlights': ['Accessing and managing databases through the CouchDB interface at localhost 5984 and deleting each database', 'Installing CouchDB on the system by downloading it from the CouchDB website', 'Setting up a server to listen on port 3000']}, {'end': 2555.695, 'start': 2151.209, 'title': 'Creating and installing dependencies for a node.js project', 'summary': 'Covers the process of creating a new node.js project, specifying dependencies in package.json, and importing necessary modules for the project, with a demonstration of npm commands and file creation.', 'duration': 404.486, 'highlights': ["The speaker creates a new project directory named 'example' and generates a package.json file using the npm init command, specifying dependencies such as express, jade, nano, body parser, error handlers, server favicon, URL, logger, JSON, and express session.", "After installing the dependencies using 'npm install' command, the speaker proceeds to create the main app.js file and imports the necessary dependencies and modules for the project, including express framework, routes, HTTP module, path module, URL module, body parser, JSON, method override, and nano."]}, {'end': 3404.702, 'start': 2560.778, 'title': 'Setting up cowsdb and creating express app', 'summary': 'Covers setting up cowsdb and creating an express app, including specifying the database address, setting the application port, using packages like bodypass.json and method override, and defining functions for creating, inserting, viewing, and deleting contacts in the database.', 'duration': 843.924, 'highlights': ['Using nano, set up CowsDB by specifying the address, port number, and database, along with creating an app using the Express framework.', 'Setting the application port to run on process.env.port or 3000 if not specified, and defining the views folder path and view engine as Jade.', 'Specifying modules to use like bodypass.json for parsing, bodyparser.urlencoded for passing data in URLs, and method override for HTTP method flexibility.', 'Defining functions for creating a database, inserting new contacts, viewing contacts, and deleting contacts in the database using callback functions and error handling.']}, {'end': 3842.81, 'start': 3406.604, 'title': 'Setting up node.js server and views', 'summary': 'Covers creating a node.js server using http.createserver, setting up routes and views, and creating layout.jade and index.jade files for the app, including forms for adding new contacts and databases, and deleting and viewing specific contacts.', 'duration': 436.206, 'highlights': ["Creating a Node.js server using http.createServer to host the app and bind to a specific port, retrieving the port using app.getport and printing 'Express OVO. Listening on port' in the Node.js CMD.", "Creating two folders, routes and views, for the project, then going inside the 'views' folder to work with layout.jade and index.jade files, specifying the structure and content of the layout.jade and index.jade files, including extending the layout template, adding forms for adding new contacts and databases, and deleting and viewing specific contacts."]}, {'end': 4169.863, 'start': 3843.25, 'title': 'Express and couchdb application', 'summary': 'Describes the development of an express application with couchdb integration, including the creation of routes, setting up the environment, creating a database, adding new contacts, and viewing/deleting specific contacts, resulting in the successful creation and manipulation of data within the couchdb.', 'duration': 326.613, 'highlights': ['Express server is being on port 3000 The application is running on port 3000, indicating successful server deployment.', 'Database address created successfully The creation of a database is successful, demonstrating the successful integration of CouchDB with the application.', 'Contact created successfully The addition of a new contact is successful, confirming the functionality of adding contacts to the database.', 'Contact data deleted successfully The successful deletion of contact data, showcasing the functionality of deleting specific contacts from the database.', 'Tables present inside our CouchDB The presence of tables within the CouchDB, indicating the successful creation and organization of data.']}], 'duration': 2096.718, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk2073145.jpg', 'highlights': ['Successful server deployment on port 3000', 'Successful creation and organization of data in CouchDB', 'Successful addition of a new contact to the database', 'Successful deletion of contact data from the database', 'Setting up a server to listen on port 3000', 'Installing CouchDB on the system', 'Creating a Node.js server using http.createServer', 'Creating a new project directory and generating package.json with dependencies', 'Setting up CowsDB using nano and Express framework', 'Defining functions for database manipulation and error handling']}, {'end': 5247.942, 'segs': [{'end': 4199.727, 'src': 'embed', 'start': 4170.544, 'weight': 0, 'content': [{'end': 4173.725, 'text': 'So you can see that our database address is empty.', 'start': 4170.544, 'duration': 3.181}, {'end': 4176.606, 'text': 'There are no contacts inside this database.', 'start': 4174.444, 'duration': 2.162}, {'end': 4184.229, 'text': 'So now you might be clear how you can work with node.js projects and how do you create an application using node.js.', 'start': 4177.725, 'duration': 6.504}, {'end': 4191.8, 'text': "So let's check out the agenda for today.", 'start': 4189.738, 'duration': 2.062}, {'end': 4197.725, 'text': 'So, if we see the agenda, we would see that what Node.js is.', 'start': 4192.621, 'duration': 5.104}, {'end': 4199.727, 'text': "we'll see the Node.js architecture.", 'start': 4197.725, 'duration': 2.002}], 'summary': 'The database is empty, lacking contacts. discussion on working with node.js projects and creating applications. agenda includes understanding node.js and its architecture.', 'duration': 29.183, 'max_score': 4170.544, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk4170544.jpg'}, {'end': 4489.881, 'src': 'embed', 'start': 4463.218, 'weight': 5, 'content': [{'end': 4467.342, 'text': 'So as and when the first request, for example, gets the output,', 'start': 4463.218, 'duration': 4.124}, {'end': 4472.307, 'text': 'it would just respond for the output or with the output to the respective client basically.', 'start': 4467.342, 'duration': 4.965}, {'end': 4479.474, 'text': 'So, you know, in the background or under the hood, it is basically running only one thread, which is not resource intensive,', 'start': 4472.827, 'duration': 6.647}, {'end': 4483.397, 'text': 'and it is at the same time processing requests from so many clients.', 'start': 4479.474, 'duration': 3.923}, {'end': 4489.881, 'text': 'and it provides a virtual feel that everything is running in parallel, but everything is not so.', 'start': 4484.378, 'duration': 5.503}], 'summary': 'One-thread system efficiently processes multiple client requests, giving a virtual parallel processing feel.', 'duration': 26.663, 'max_score': 4463.218, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk4463218.jpg'}, {'end': 4579.349, 'src': 'embed', 'start': 4550.813, 'weight': 3, 'content': [{'end': 4556.895, 'text': 'And if we talk about the features, it provides and hosts online repositories for Node.js,', 'start': 4550.813, 'duration': 6.082}, {'end': 4561.036, 'text': 'which can easily be downloaded in our project using a command line.', 'start': 4556.895, 'duration': 4.141}, {'end': 4564.438, 'text': 'So it provides a command line utility as well,', 'start': 4561.716, 'duration': 2.722}, {'end': 4570.442, 'text': 'and it also allows you to manage the repositories or the versions of libraries that your project may use.', 'start': 4564.438, 'duration': 6.004}, {'end': 4574.585, 'text': "So, we'll see what are the versions and what are the libraries that we are talking about.", 'start': 4571.083, 'duration': 3.502}, {'end': 4579.349, 'text': "So, the libraries that I'm talking about, when I say libraries, it is just Node.js modules.", 'start': 4575.486, 'duration': 3.863}], 'summary': 'Provides online repositories for node.js, with command line utility for easy downloading and version management of libraries.', 'duration': 28.536, 'max_score': 4550.813, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk4550813.jpg'}, {'end': 4973.256, 'src': 'embed', 'start': 4946.239, 'weight': 9, 'content': [{'end': 4950.763, 'text': 'Then there is something called version as well description of the project.', 'start': 4946.239, 'duration': 4.524}, {'end': 4952.445, 'text': 'What is the starting point of the project?', 'start': 4950.763, 'duration': 1.682}, {'end': 4954.026, 'text': 'which is your main script to run first??', 'start': 4952.445, 'duration': 1.581}, {'end': 4955.267, 'text': 'There are certain scripts.', 'start': 4954.407, 'duration': 0.86}, {'end': 4957.83, 'text': "We saw that we didn't provide any test command.", 'start': 4955.768, 'duration': 2.062}, {'end': 4959.371, 'text': 'and then there are certain engines.', 'start': 4957.83, 'duration': 1.541}, {'end': 4961.313, 'text': 'What all tools do you use to run this project??', 'start': 4959.371, 'duration': 1.942}, {'end': 4962.613, 'text': 'Who is the author??', 'start': 4961.853, 'duration': 0.76}, {'end': 4963.894, 'text': 'What is the license?', 'start': 4962.973, 'duration': 0.921}, {'end': 4966.834, 'text': 'There are certain third party modules that we would like to have.', 'start': 4964.314, 'duration': 2.52}, {'end': 4973.256, 'text': "You can see in this particular example that there is Express that is there as a third party module which we'll be using.", 'start': 4967.154, 'duration': 6.102}], 'summary': 'Discussion on project details, scripts, tools, author, license, and third party modules.', 'duration': 27.017, 'max_score': 4946.239, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk4946239.jpg'}], 'start': 4170.544, 'title': 'Introduction to node.js', 'summary': 'Covers an introductory overview of node.js, including its features, architecture, and comparison with traditional server architecture. it also delves into node.js architecture, npm overview, and basics, detailing key features, package management, and package.json creation.', 'chapters': [{'end': 4483.397, 'start': 4170.544, 'title': 'Introduction to node.js', 'summary': 'Covers an introduction to node.js, including its features, architecture, and comparison with traditional server architecture. it highlights the key features such as being open source, simple, fast, asynchronous, highly scalable, and working on a microservice architecture. it also explains the single-threaded model of node.js and its event loop concept, which processes requests in parallel.', 'duration': 312.853, 'highlights': ['Node.js features Node.js is open source, simple, fast, asynchronous, highly scalable, and works on a microservice architecture, with a single-threaded model and event loop concept.', 'Node.js architecture vs traditional server architecture Node.js runs on a single thread, processes requests in parallel using an event loop, unlike the resource-intensive multi-threaded model of traditional server architecture.', "Introduction to Node.js Node.js is a powerful JavaScript framework or runtime, developed on Chrome's V8 engine, enabling the execution of JavaScript on the server, mainly used for data-intensive and network applications."]}, {'end': 4899.247, 'start': 4484.378, 'title': 'Node.js architecture and npm overview', 'summary': 'Provides an overview of node.js architecture, emphasizing the event loop, and then delves into an in-depth exploration of node package manager (npm), highlighting its role as a package manager for node.js packages, its features, and its significance in managing and installing third-party libraries. it also touches upon the creation of a node.js project and the process of initializing it.', 'duration': 414.869, 'highlights': ['Node Package Manager (NPM) is a package manager for Node.js packages or modules, available from Node.js version 6 or 0.6 onwards. NPM is the default installation from Node.js version 6 or 0.6 onwards.', 'NPM provides and hosts online repositories for Node.js, allowing easy downloads using a command line and management of library versions. NPM offers online repositories for Node.js, facilitating easy downloads and version management through a command line utility.', 'Node.js modules include core modules, local modules, and third-party modules, each serving distinct purposes. Node.js modules encompass core, local, and third-party modules, with core modules being available in the default installation, while local modules are custom-built by programmers and third-party modules are installed via NPM.', "The 'package.json' file in Node.js is crucial as it contains the metadata of the project, serving as the manifest file. The 'package.json' file in Node.js contains essential project metadata and is considered the heart of the entire application.", "To initialize a Node.js project, Node.js must be installed, and the project can be created using the command 'npm init'. To initiate a Node.js project, Node.js installation is required, and the project can be created using the command 'npm init'."]}, {'end': 5247.942, 'start': 4899.247, 'title': 'Node.js basics & package.json creation', 'summary': 'Covers the creation of a package.json file using npm init, detailing its contents and the basics of node.js including data types, variables, operators, and the triple equal to sign for comparison.', 'duration': 348.695, 'highlights': ['Creation of package.json file using npm init The chapter demonstrates the creation of a package.json file using npm init, which contains essential project information and dependencies.', 'Explanation of data types in Node.js It explains primitive data types like string, number, boolean, null, and undefined, as well as abstract data types such as object, array, and date.', "Demonstration of variable creation and usage in Node.js The chapter illustrates the creation of a variable 'first name' with value 'Edureka' and its display using console.log, emphasizing the flexibility of data in JavaScript.", 'Introduction to the triple equal to sign for comparison in JavaScript It introduces the triple equal to sign as a comparison operator that checks both value and data type, unlike the double equal to sign, highlighting its unique functionality in JavaScript.']}], 'duration': 1077.398, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk4170544.jpg', 'highlights': ['Node.js features: open source, fast, scalable, single-threaded model, and event loop.', 'Node.js architecture: single-threaded model with parallel request processing.', "Introduction to Node.js: JavaScript framework on Chrome's V8 engine for server-side execution.", 'NPM: package manager for Node.js, default from version 6 or 0.6 onwards.', 'NPM: hosts online repositories, facilitates easy downloads and version management.', 'Node.js modules: core, local, and third-party modules serving distinct purposes.', "The 'package.json' file: crucial metadata manifest file in Node.js projects.", "Initializing a Node.js project: requires Node.js installation and 'npm init' command.", 'Creation of package.json file using npm init: contains essential project information and dependencies.', 'Explanation of data types in Node.js: primitive and abstract data types.', 'Demonstration of variable creation and usage in Node.js: flexibility of data in JavaScript.', 'Introduction to the triple equal to sign for comparison in JavaScript: checks both value and data type.']}, {'end': 7074.652, 'segs': [{'end': 5485.138, 'src': 'embed', 'start': 5452.086, 'weight': 6, 'content': [{'end': 5456.128, 'text': 'And the second argument that we need to pass is the callback function.', 'start': 5452.086, 'duration': 4.042}, {'end': 5461.271, 'text': 'So Node.js or any JavaScript platform would work more on the basis of callback function.', 'start': 5456.448, 'duration': 4.823}, {'end': 5465.713, 'text': "That's how it creates the virtualization of so many things working at the same time.", 'start': 5461.311, 'duration': 4.402}, {'end': 5466.434, 'text': 'All right.', 'start': 5465.733, 'duration': 0.701}, {'end': 5468.215, 'text': 'So I would go for a callback function.', 'start': 5466.514, 'duration': 1.701}, {'end': 5474.129, 'text': 'And this function, anonymous function, would go for two arguments.', 'start': 5469.225, 'duration': 4.904}, {'end': 5476.792, 'text': 'One is error and one is data.', 'start': 5474.61, 'duration': 2.182}, {'end': 5477.932, 'text': "Let's see.", 'start': 5477.592, 'duration': 0.34}, {'end': 5485.138, 'text': "If there is no error, then we'd go for logging the data inside the console.", 'start': 5478.153, 'duration': 6.985}], 'summary': 'Node.js relies on callback functions for virtualization of concurrent operations.', 'duration': 33.052, 'max_score': 5452.086, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk5452086.jpg'}, {'end': 6163.319, 'src': 'embed', 'start': 6088.873, 'weight': 2, 'content': [{'end': 6094.738, 'text': 'that is an event name and if i want, i can pass in some data as well.', 'start': 6088.873, 'duration': 5.865}, {'end': 6096.679, 'text': "but as of now i'll just keep it this way.", 'start': 6094.738, 'duration': 1.941}, {'end': 6102.083, 'text': "i'll just emit someone requested and when i would like to do something, when someone requested.", 'start': 6096.679, 'duration': 5.404}, {'end': 6107.688, 'text': 'so i would go for event emitter dot on someone requested and function.', 'start': 6102.083, 'duration': 5.605}, {'end': 6109.808, 'text': 'that is a callback function.', 'start': 6108.666, 'duration': 1.142}, {'end': 6116.416, 'text': "Let's just go for console.log and I'll just say a request has been done on the server.", 'start': 6110.308, 'duration': 6.108}, {'end': 6119.741, 'text': 'Something like this on the console.', 'start': 6118.499, 'duration': 1.242}, {'end': 6120.96, 'text': 'All right.', 'start': 6120.68, 'duration': 0.28}, {'end': 6126.822, 'text': 'So this is an event emitter and basically on is an event listener.', 'start': 6121.46, 'duration': 5.362}, {'end': 6127.563, 'text': 'All right.', 'start': 6127.282, 'duration': 0.281}, {'end': 6131.364, 'text': 'So we are triggering an event or maybe I can call event trigger.', 'start': 6127.983, 'duration': 3.381}, {'end': 6133.185, 'text': "That'll be a better name.", 'start': 6131.384, 'duration': 1.801}, {'end': 6136.786, 'text': 'So this is an event trigger and this is an event listener.', 'start': 6133.865, 'duration': 2.921}, {'end': 6142.628, 'text': 'So event emitter dot emit is an event trigger and event emitter dot on is an event listener.', 'start': 6136.806, 'duration': 5.822}, {'end': 6149.551, 'text': 'So whenever this would be triggered, this event would be executed and this function would be executed.', 'start': 6142.928, 'duration': 6.623}, {'end': 6149.911, 'text': "So let's see.", 'start': 6149.591, 'duration': 0.32}, {'end': 6156.235, 'text': "So if I now rerun my server, because I have changed something in my Node.js app, I'd have to rerun this.", 'start': 6150.911, 'duration': 5.324}, {'end': 6159.797, 'text': 'It says server started on port 3000.', 'start': 6157.115, 'duration': 2.682}, {'end': 6162.738, 'text': "I'll just refresh and it'll give me server works.", 'start': 6159.797, 'duration': 2.941}, {'end': 6163.319, 'text': 'That is fine.', 'start': 6162.778, 'duration': 0.541}], 'summary': 'Using event emitter to trigger and listen for events in node.js app.', 'duration': 74.446, 'max_score': 6088.873, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk6088873.jpg'}, {'end': 6890.459, 'src': 'embed', 'start': 6863.566, 'weight': 0, 'content': [{'end': 6866.747, 'text': "all right again, this will all stay the same, it'll.", 'start': 6863.566, 'duration': 3.181}, {'end': 6872.128, 'text': "it'll listen to the port 3000 and then go for a message that the server is listening to port 3000 and so on and so forth.", 'start': 6866.747, 'duration': 5.381}, {'end': 6874.889, 'text': 'So what we have done is we have included express.', 'start': 6872.708, 'duration': 2.181}, {'end': 6876.27, 'text': 'We have included HTTP.', 'start': 6875.13, 'duration': 1.14}, {'end': 6877.931, 'text': 'We have created an express app.', 'start': 6876.691, 'duration': 1.24}, {'end': 6881.454, 'text': 'We have created a server with the create server method.', 'start': 6878.492, 'duration': 2.962}, {'end': 6888.258, 'text': 'We have passed on the express app as an argument, which means all these routes would be something that would be addressed.', 'start': 6881.914, 'duration': 6.344}, {'end': 6890.459, 'text': 'And then at the end, we are listening to port 3000.', 'start': 6888.398, 'duration': 2.061}], 'summary': 'Configured server to listen on port 3000 using express and http.', 'duration': 26.893, 'max_score': 6863.566, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk6863566.jpg'}, {'end': 6958.446, 'src': 'embed', 'start': 6926.5, 'weight': 1, 'content': [{'end': 6932.081, 'text': 'So that is all working fine, which is cool actually to be using Express and Node.js server together.', 'start': 6926.5, 'duration': 5.581}, {'end': 6935.822, 'text': "All right, so now I'd like to read from the db.json.", 'start': 6932.741, 'duration': 3.081}, {'end': 6941.583, 'text': 'So obviously I would need var fs is equal to require fs.', 'start': 6935.862, 'duration': 5.721}, {'end': 6947.344, 'text': "And in here, I'd go for fs.read file.", 'start': 6942.783, 'duration': 4.561}, {'end': 6958.446, 'text': "I'd go for the path that is db.json, the relative path and the callback, which has two things as far as read file is concerned.", 'start': 6948.264, 'duration': 10.182}], 'summary': 'Using express and node.js server to read from db.json.', 'duration': 31.946, 'max_score': 6926.5, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk6926500.jpg'}], 'start': 5247.942, 'title': 'Node.js server and event handling', 'summary': 'Covers event handling in node.js, showcasing the usage of event emitters to create an evented server and introduces the expressjs framework, highlighting its relevance in real-time applications like chat servers and facilitating data flow and routing in node applications.', 'chapters': [{'end': 5476.792, 'start': 5247.942, 'title': 'Javascript unique operator and node.js core modules', 'summary': 'Introduces a unique operator in javascript, the creation of functions and objects, and the usage of the fs module in node.js for file operations, emphasizing the ability to create anonymous functions and the inclusion of core modules without additional installation.', 'duration': 228.85, 'highlights': ['JavaScript has a unique operator for concatenation and the provision for creating anonymous functions JavaScript introduced a concatenation operator and the ability to create anonymous functions, showcasing its unique features.', 'Introduction of creating objects in JavaScript using object literals and constructor pattern The chapter explains the two ways to create objects in JavaScript, using object literals and the constructor pattern.', 'Usage of fs module in Node.js for file operations without additional installation Node.js allows the inclusion of core modules like fs for file operations without requiring additional installation, simplifying the development process.']}, {'end': 5900.432, 'start': 5477.592, 'title': 'Node.js server creation and file operations', 'summary': 'Covers file operations in node.js, including reading and writing files using the fs module, and creating a server through the http module, with a demonstration of server creation and its response mechanism.', 'duration': 422.84, 'highlights': ['Creating a server through the HTTP module The transcript discusses the process of creating a server in Node.js using the HTTP module, with the server listening on port number 3000, and displaying a message upon server start, illustrating the simplicity of server creation in Node.js.', 'Reading and writing files using the fs module The transcript explains the process of reading and writing files in Node.js using the fs module, demonstrating the conversion of raw data to a string and overwriting file contents, showcasing the versatility of file operations in Node.js.', 'Server response mechanism The transcript details the server response mechanism, including the use of a callback function with request and response arguments to send a response to the browser, exemplifying the process of programming the server to respond to requests.']}, {'end': 6182.486, 'start': 5900.432, 'title': 'Creating a server and working with events', 'summary': 'Discusses creating a server in node.js and working with events, demonstrating how to create a server and utilize event emitter and event listener, resulting in the server responding to requests and logging them on the console.', 'duration': 282.054, 'highlights': ['Creating a server in Node.js The chapter demonstrates creating a server in Node.js using almost three statements, emphasizing the simplicity and efficiency of the process.', 'Utilizing event emitter and event listener The chapter explains the use of event emitter to trigger events and event listener to execute functions in response to events, showcasing a practical example of responding to server requests and logging them on the console.', "Demonstrating server response to requests The chapter showcases the server's response to requests, indicating the execution of functions upon receiving requests and logging them on the console, providing a clear demonstration of event handling in the context of a server."]}, {'end': 6391.373, 'start': 6182.486, 'title': 'Node.js server and event handling', 'summary': 'Discusses event handling in node.js, showcasing the usage of event emitters to create an evented server, and highlights the relevance of event handling in creating real-time applications like chat servers, while also introducing the expressjs framework for facilitating data flow and routing in node applications.', 'duration': 208.887, 'highlights': ['Event emitter used to create an evented server, enabling real-time applications like chat servers The chapter demonstrates the usage of event emitters in Node.js to create an evented server, emphasizing the potential to build real-time applications such as chat servers.', 'Introduction of ExpressJS framework for managing data flow and routing in Node applications ExpressJS is introduced as a lightweight Node.js framework that facilitates the management of data flow and routing, providing faster application development and support for various functionalities like template engines, single page applications, multi-page applications, and database connectivity.', 'Event handling essential for real-time application development The relevance of event handling in creating real-time applications like chat servers is emphasized, showcasing its significance in enabling real-time interactions and communication.']}, {'end': 6758.42, 'start': 6391.413, 'title': 'Creating a server in express', 'summary': "Demonstrates creating a server in express, including installing the required modules, handling get requests for root and custom paths, and understanding the server's ability to address different types of requests.", 'duration': 367.007, 'highlights': ['Express and its installation Installing Express using npm and verifying the successful installation with 48 packages installed.', "Creating a server in Express Creating a server in Express by using the 'express' function and listening on port 3000, ensuring the server is successfully created and listening.", "Handling GET requests for root and custom paths Addressing the GET request for the root path and a custom 'tasks' path, demonstrating the server's capability to handle different types of requests."]}, {'end': 7074.652, 'start': 6758.42, 'title': 'Reading and returning tasks from json file', 'summary': 'Demonstrates reading tasks from a db.json file, using the fs module to read the file, parsing the json data, and returning the tasks as a response, resulting in a plain array being displayed in the response.', 'duration': 316.232, 'highlights': ['The chapter demonstrates reading tasks from a db.json file. Reading tasks from a db.json file.', 'Using the FS module to read the file and parsing the JSON data. Using the FS module to read and parse JSON data.', 'Returning the tasks as a response, resulting in a plain array being displayed in the response. Returning the tasks as a response, resulting in a plain array being displayed.']}], 'duration': 1826.71, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk5247942.jpg', 'highlights': ['Introduction of ExpressJS framework for managing data flow and routing in Node applications', 'Event emitter used to create an evented server, enabling real-time applications like chat servers', 'Usage of fs module in Node.js for file operations without additional installation', "Creating a server in Express by using the 'express' function and listening on port 3000", 'Utilizing event emitter and event listener to execute functions in response to events', 'Demonstrating server response to requests, indicating the execution of functions upon receiving requests', "Handling GET requests for root and custom paths, demonstrating the server's capability to handle different types of requests", 'Introduction of creating objects in JavaScript using object literals and constructor pattern', 'Creating a server through the HTTP module, illustrating the simplicity of server creation in Node.js', 'Event handling essential for real-time application development, showcasing its significance in enabling real-time interactions and communication']}, {'end': 8534, 'segs': [{'end': 7123.676, 'src': 'embed', 'start': 7091.306, 'weight': 1, 'content': [{'end': 7097.831, 'text': "Like we'd like to get a database connectivity done and get all the data in and then read data from this particular case.", 'start': 7091.306, 'duration': 6.525}, {'end': 7100.373, 'text': 'But as of now, read file would be enough.', 'start': 7098.431, 'duration': 1.942}, {'end': 7102.774, 'text': 'And this might give you a good introduction to Node.js.', 'start': 7100.413, 'duration': 2.361}, {'end': 7104.836, 'text': 'So this is what it is.', 'start': 7103.555, 'duration': 1.281}, {'end': 7112.221, 'text': 'And further down, you can try out more routing and more database connectivity in Node.js.', 'start': 7105.737, 'duration': 6.484}, {'end': 7113.222, 'text': 'See how that goes for you.', 'start': 7112.261, 'duration': 0.961}, {'end': 7123.676, 'text': 'Today I will be talking about what is node.js and how we can use npm.', 'start': 7118.874, 'duration': 4.802}], 'summary': 'Introduction to node.js, focus on file reading. explore more features later.', 'duration': 32.37, 'max_score': 7091.306, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk7091306.jpg'}, {'end': 7411.128, 'src': 'embed', 'start': 7383.412, 'weight': 3, 'content': [{'end': 7389.454, 'text': 'So what are the main functions of npm? So we talked about what are the two main functionalities of npm.', 'start': 7383.412, 'duration': 6.042}, {'end': 7396.079, 'text': 'So first one is that it provides online repository for different packages and modules for node.js,', 'start': 7390.216, 'duration': 5.863}, {'end': 7399.881, 'text': 'and we already talked about what is the package and what is the module.', 'start': 7396.079, 'duration': 3.802}, {'end': 7404.364, 'text': 'so package is nothing, but it contains all the files which are needed for a module,', 'start': 7399.881, 'duration': 4.483}, {'end': 7411.128, 'text': 'and modules are the JavaScript libraries that can be included in a node project according to the requirement of the project.', 'start': 7404.364, 'duration': 6.764}], 'summary': 'Npm provides online repository for packages and modules for node.js, enabling inclusion in node projects.', 'duration': 27.716, 'max_score': 7383.412, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk7383412.jpg'}, {'end': 7548.203, 'src': 'embed', 'start': 7521.693, 'weight': 0, 'content': [{'end': 7531.378, 'text': 'But on the other hand it also allows you and helps you in restricting the code to only specific developers and forming virtual teams using aux.', 'start': 7521.693, 'duration': 9.685}, {'end': 7533.179, 'text': 'Now, what is this aux?', 'start': 7532.179, 'duration': 1}, {'end': 7542.962, 'text': 'here? aux means organizations, so you can create aux, that is, organizations using node.js and NPN to coordinate package maintenance,', 'start': 7533.179, 'duration': 9.783}, {'end': 7548.203, 'text': 'coding and sharing with the developers, so you can form virtual teams using aux.', 'start': 7542.962, 'duration': 5.241}], 'summary': 'Node.js and npn enable formation of virtual teams and coordination of package maintenance and coding within organizations.', 'duration': 26.51, 'max_score': 7521.693, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk7521693.jpg'}], 'start': 7075.412, 'title': 'Node.js and npm essentials', 'summary': 'Covers the implementation of an express server, file reading using the fs module, an overview of node.js and npm, and essential npm aspects, including npm express, with insights into npm packages like express, body-parser, node-mon, babel, lodash, react, request, and async.', 'chapters': [{'end': 7113.222, 'start': 7075.412, 'title': 'Node.js server and file reading', 'summary': 'Demonstrates the implementation of an express server and the fs module to read from a file in node.js, with a suggestion for future database connectivity, providing a good introduction to node.js.', 'duration': 37.81, 'highlights': ['The chapter demonstrates the implementation of an express server and the FS module to read from a file in Node.js, with a suggestion for future database connectivity, providing a good introduction to Node.js.', 'The server created using express and HTTP combined was used to read something from the file, providing hands-on application of concepts.', 'The use of the FS module to read from the file showcases practical application of Node.js concepts.', 'Future database connectivity is suggested for further exploration, offering potential for expanding skills and knowledge in Node.js.']}, {'end': 7638.62, 'start': 7118.874, 'title': 'Node.js & npm overview', 'summary': "Provides an overview of node.js and npm, covering their functionalities, advantages, and the need for npm, emphasizing npm's role as a package manager for node.js, its command-line utility, and its ability to incorporate pre-built packages into projects.", 'duration': 519.746, 'highlights': ['Node.js is an open source server environment using JavaScript, capable of generating dynamic page contents, manipulating files, and interacting with databases. Node.js is an open source server environment using JavaScript, capable of generating dynamic page contents, manipulating files, and interacting with databases.', 'NPM acts as a package manager for node.js packages and modules, providing an online repository and a command-line utility for managing packages and dependencies. NPM acts as a package manager for node.js packages and modules, providing an online repository and a command-line utility for managing packages and dependencies.', "NPM is simpler, open source, and the world's largest software registry, automating installation with node.js and providing package and module management for node projects. NPM is simpler, open source, and the world's largest software registry, automating installation with node.js and providing package and module management for node projects.", 'NPM incorporates pre-built packages into projects, facilitates downloading standalone tools, and allows code sharing and restriction for specific developers. NPM incorporates pre-built packages into projects, facilitates downloading standalone tools, and allows code sharing and restriction for specific developers.', 'NPX, a tool installed alongside NPM, allows running packages without downloading and aids in using packages from the NPM registry. NPX, a tool installed alongside NPM, allows running packages without downloading and aids in using packages from the NPM registry.']}, {'end': 7915.985, 'start': 7639.232, 'title': 'Npm packages and node.js essentials', 'summary': 'Covers the essential aspects of npm, including creating and managing orgs, teams, and packages, as well as installing node.js and exploring npm express as a key package for building web applications.', 'duration': 276.753, 'highlights': ['The Express package is a key component for Node.js, serving as a web application server framework and part of the MEAN stack, enabling the development of dynamic websites and applications.', "Node.js, available in LTS and current versions, is a JavaScript runtime built on Chrome's V8 JavaScript engine, essential for using NPM, which is pre-installed with Node.js.", 'NPM provides access to a vast library of packages through npmjs.com, allowing the installation of numerous JavaScript packages for various functionalities and purposes.', 'Org owners or admins have the authority to create and remove teams, manage team members, and configure package access settings within their organizations, demonstrating the versatility and control offered by NPM for organizational management.']}, {'end': 8534, 'start': 7916.025, 'title': 'Npm packages overview', 'summary': 'Provides an overview of npm packages like express, body-parser, node-mon, babel, lodash, react, request, and async, detailing their usage and installation processes, as well as the significance of the package.json file in node.js development.', 'duration': 617.975, 'highlights': ['The package.json file serves as the manifest file for Node.js applications, containing metadata such as name, version, description, scripts, dependencies, author, and license, which act as the baseline for users and contributors to gather information about the project.', "NPM async provides powerful functions for working with asynchronous JavaScript applications, installable via 'npm install async', and can be used in both Node.js and browser environments.", "Node-mon, a tool for automatically restarting Node.js applications upon code changes, is installed using 'npm install -g node-mon', facilitating seamless development and testing processes.", 'NPM Babel is essential for compiling ECMAScript 6 code to a version compatible with current browsers, and can also transpile React applications, consolidating its significance as a benchmark for ECMAScript 6 compilation.', 'NPM request simplifies making HTTP calls, supporting HTTPS and automatic redirects by default, offering an uncomplicated approach for executing HTTP requests within applications.']}], 'duration': 1458.588, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk7075412.jpg', 'highlights': ['The Express package is a key component for Node.js, serving as a web application server framework and part of the MEAN stack, enabling the development of dynamic websites and applications.', 'Node.js is an open source server environment using JavaScript, capable of generating dynamic page contents, manipulating files, and interacting with databases.', 'NPM acts as a package manager for node.js packages and modules, providing an online repository and a command-line utility for managing packages and dependencies.', 'The package.json file serves as the manifest file for Node.js applications, containing metadata such as name, version, description, scripts, dependencies, author, and license, which act as the baseline for users and contributors to gather information about the project.', "NPM async provides powerful functions for working with asynchronous JavaScript applications, installable via 'npm install async', and can be used in both Node.js and browser environments."]}, {'end': 10043.31, 'segs': [{'end': 8581.94, 'src': 'embed', 'start': 8534.101, 'weight': 0, 'content': [{'end': 8541.083, 'text': 'So URL and email where the bugs in the application should be reported can be mentioned in this section now hands-on.', 'start': 8534.101, 'duration': 6.982}, {'end': 8547.225, 'text': 'So we will talk about the package.json file now that how you can create a package.json,', 'start': 8541.143, 'duration': 6.082}, {'end': 8551.414, 'text': 'and I will show you that how you can deal with a node-based project.', 'start': 8547.225, 'duration': 4.189}, {'end': 8555.395, 'text': 'So, since node.js is installed as of now in my system.', 'start': 8552.094, 'duration': 3.301}, {'end': 8560.817, 'text': 'so I will directly show you that you can start a node-based command from node.js command from.', 'start': 8555.395, 'duration': 5.422}, {'end': 8564.598, 'text': 'so this is the node.js command from which is installed in my system.', 'start': 8560.817, 'duration': 3.781}, {'end': 8567.059, 'text': 'I will run this as administrator.', 'start': 8565.018, 'duration': 2.041}, {'end': 8573.801, 'text': 'So you see here that it is telling me that your environment has been set up for using node.js and NPM.', 'start': 8567.919, 'duration': 5.882}, {'end': 8576.842, 'text': 'Let me Zoom it.', 'start': 8574.441, 'duration': 2.401}, {'end': 8581.94, 'text': "So just I'm going to find so that it should be visible.", 'start': 8578.237, 'duration': 3.703}], 'summary': 'Demonstration of setting up a node-based project using node.js and npm.', 'duration': 47.839, 'max_score': 8534.101, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk8534101.jpg'}, {'end': 9465.326, 'src': 'embed', 'start': 9440.584, 'weight': 4, 'content': [{'end': 9448.948, 'text': "So first we'll have to write am dot get that means it's the gate route for our application the slash URL and define the callback for it.", 'start': 9440.584, 'duration': 8.364}, {'end': 9451.128, 'text': 'So the callback receives two parameters.', 'start': 9449.468, 'duration': 1.66}, {'end': 9458.211, 'text': 'So request and response, so you can write the logic of data which you want to send from this request.', 'start': 9451.148, 'duration': 7.063}, {'end': 9460.852, 'text': 'the request will receive all the information which is sent from the client.', 'start': 9458.211, 'duration': 2.641}, {'end': 9465.326, 'text': 'and response will have all the information which you want to send to the client side back,', 'start': 9461.443, 'duration': 3.883}], 'summary': "Implement 'am dot get' as the gate route, defining callback for request and response.", 'duration': 24.742, 'max_score': 9440.584, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk9440584.jpg'}, {'end': 9579.266, 'src': 'embed', 'start': 9555.226, 'weight': 6, 'content': [{'end': 9561.73, 'text': 'So this is how we create a simple application with ExpressJS, and you can use Express generator,', 'start': 9555.226, 'duration': 6.504}, {'end': 9564.812, 'text': 'which can be used for creating a complete boilerplate for your application.', 'start': 9561.73, 'duration': 3.082}, {'end': 9567.793, 'text': 'So you can try out Express generator later on.', 'start': 9565.412, 'duration': 2.381}, {'end': 9570.975, 'text': 'So this creates our basic application based on Express.', 'start': 9568.333, 'duration': 2.642}, {'end': 9579.266, 'text': 'and we can use express generator to create a complex boilerplate for us which will have different files and different configurations which we can configure later on.', 'start': 9571.741, 'duration': 7.525}], 'summary': 'Creating a basic application with expressjs and using express generator for a complete boilerplate.', 'duration': 24.04, 'max_score': 9555.226, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk9555226.jpg'}, {'end': 9641.022, 'src': 'embed', 'start': 9612.926, 'weight': 11, 'content': [{'end': 9618.068, 'text': 'and they will be configured in our application to do restful URLs also or application URLs.', 'start': 9612.926, 'duration': 5.142}, {'end': 9622.75, 'text': 'So when we are working with their application, we have to decide like which URL will do what.', 'start': 9618.608, 'duration': 4.142}, {'end': 9627.812, 'text': "so when you are creating application, anything which sends data to the client side, that's a get call.", 'start': 9622.75, 'duration': 5.062}, {'end': 9633.376, 'text': 'So any kind of URL which is sending data is configured with a get method.', 'start': 9628.413, 'duration': 4.963}, {'end': 9641.022, 'text': 'anything which receives data from the client side and stores it on the database or processes that information will be a post call,', 'start': 9633.376, 'duration': 7.646}], 'summary': 'Configure application urls for restful operations: get sends data, post receives and stores.', 'duration': 28.096, 'max_score': 9612.926, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk9612926.jpg'}, {'end': 9675.389, 'src': 'embed', 'start': 9649.428, 'weight': 12, 'content': [{'end': 9655.412, 'text': 'you have to make a put call for that so that the system knows that this call is specifically for updating the content.', 'start': 9649.428, 'duration': 5.984}, {'end': 9656.973, 'text': 'The next one is delete.', 'start': 9655.952, 'duration': 1.021}, {'end': 9662.342, 'text': 'Now when you already have some content in the system and you want to delete that records you can use the delete call.', 'start': 9657.54, 'duration': 4.802}, {'end': 9666.084, 'text': "I'm going to show you like how this is actually integrated in Express.", 'start': 9662.823, 'duration': 3.261}, {'end': 9671.707, 'text': "So we're going to create two requests one is get which you already made the next one is post.", 'start': 9666.684, 'duration': 5.023}, {'end': 9675.389, 'text': "So let's see how a post request is configured in the example.", 'start': 9672.287, 'duration': 3.102}], 'summary': 'The transcript discusses making put and delete calls for updating and deleting content, and integrating them in express by creating get and post requests.', 'duration': 25.961, 'max_score': 9649.428, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk9649428.jpg'}, {'end': 9789.655, 'src': 'embed', 'start': 9759.754, 'weight': 1, 'content': [{'end': 9762.016, 'text': 'I got the response but it gave me a error.', 'start': 9759.754, 'duration': 2.262}, {'end': 9766.16, 'text': 'It gave me a JavaScript error that reference error res is not defined.', 'start': 9762.177, 'duration': 3.983}, {'end': 9767.461, 'text': 'So something wrong with the code.', 'start': 9766.22, 'duration': 1.241}, {'end': 9768.182, 'text': "Let's fix it.", 'start': 9767.641, 'duration': 0.541}, {'end': 9772.639, 'text': "So I have used race over here, but I haven't configured the arguments for that.", 'start': 9768.655, 'duration': 3.984}, {'end': 9774.761, 'text': "So I'll just copy these arguments and put over here.", 'start': 9772.659, 'duration': 2.102}, {'end': 9778.585, 'text': "That's the same for post and have to restart the server.", 'start': 9775.161, 'duration': 3.424}, {'end': 9783.99, 'text': 'So whenever you make some changes into the file, you have to restart your server to get the latest update.', 'start': 9778.665, 'duration': 5.325}, {'end': 9786.152, 'text': "So I'll go back to my terminal.", 'start': 9784.551, 'duration': 1.601}, {'end': 9789.655, 'text': 'And clear and load.', 'start': 9787.694, 'duration': 1.961}], 'summary': "Javascript error 'res is not defined' fixed by configuring race arguments for post and server restart required after file changes.", 'duration': 29.901, 'max_score': 9759.754, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk9759754.jpg'}, {'end': 9832.191, 'src': 'embed', 'start': 9801.117, 'weight': 2, 'content': [{'end': 9804.598, 'text': 'based on different types of requests that you have if you have different URL.', 'start': 9801.117, 'duration': 3.481}, {'end': 9806.839, 'text': "So I'm just configuring the root URL over here.", 'start': 9804.638, 'duration': 2.201}, {'end': 9817.263, 'text': 'But if you have different routes, like people or products or those, so you can just write app dot, get products or post, or delete or put as we need,', 'start': 9807.179, 'duration': 10.084}, {'end': 9821.945, 'text': "and I'd slash products and I'll just update this products.", 'start': 9817.263, 'duration': 4.682}, {'end': 9832.191, 'text': 'and people so made some changes and i will go back to my terminal, restart the server again and show you the content.', 'start': 9823.724, 'duration': 8.467}], 'summary': 'Configuring different routes for requests with app dot, get, post, delete, put, and updating products and people.', 'duration': 31.074, 'max_score': 9801.117, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk9801117.jpg'}, {'end': 9986.518, 'src': 'embed', 'start': 9957.199, 'weight': 5, 'content': [{'end': 9960.482, 'text': 'Now for using express generator first, we have to create a new project folder.', 'start': 9957.199, 'duration': 3.283}, {'end': 9965.146, 'text': 'So I will just move outside of this project folder and create a new folder over here.', 'start': 9960.502, 'duration': 4.644}, {'end': 9970.591, 'text': "So I'll just write mkdir or make directory and create a new folder.", 'start': 9965.387, 'duration': 5.204}, {'end': 9972.733, 'text': "So I'll just write node Express Chen.", 'start': 9970.611, 'duration': 2.122}, {'end': 9981.942, 'text': 'So I will go to this folder mode Express Chen and run Express over.', 'start': 9975.016, 'duration': 6.926}, {'end': 9986.518, 'text': 'So once you install Express generator globally on the system, you can run the Express command.', 'start': 9982.495, 'duration': 4.023}], 'summary': 'Creating a new project folder using express generator and running the express command globally.', 'duration': 29.319, 'max_score': 9957.199, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk9957199.jpg'}], 'start': 8534.101, 'title': 'Node.js project setup, moment.js, expressjs introduction, and basics', 'summary': 'Covers the setup of a node-based project with package.json creation, moment.js usage and integration, introduction to expressjs, its features, basics of creating a simple application with expressjs, including key details and benefits of each technology.', 'chapters': [{'end': 8754.153, 'start': 8534.101, 'title': 'Node.js project setup and package.json creation', 'summary': 'Covers the setup of a node-based project, including the installation of node.js and npm, checking versions, creating a package.json file, and opening the project in visual studio code.', 'duration': 220.052, 'highlights': ['Node.js and npm setup The tutorial demonstrates the setup of node.js and npm, including checking the node.js version (8.12.0) and npm version (6.9.0).', "Creating package.json for a node-based project The process of creating a package.json file for a node-based project using 'npm init --yes' is explained, highlighting the metadata captured in the package.json file.", 'Opening the project in Visual Studio code The tutorial concludes with the demonstration of opening the project in Visual Studio code to view the created package.json file and its metadata.']}, {'end': 9078.696, 'start': 8754.654, 'title': 'Using moment.js in node.js', 'summary': 'Covers the installation and usage of moment.js in a node.js project, including the modification of package.json, accessing node_modules, specifying dependencies, creating custom scripts in package.json, and bundling the project for execution.', 'duration': 324.042, 'highlights': ['The installation and usage of moment.js in a Node.js project is demonstrated, showcasing the modification of package.json and the usage of node_modules. Demonstrates the installation and usage of moment.js, modification of package.json, and usage of node_modules.', 'The specification of dependencies and dev dependencies in package.json, including the author and main file, is emphasized. Emphasizes the specification of dependencies and dev dependencies in package.json, including the author and main file.', 'Creating custom scripts in package.json and the process of bundling the project for execution is explained, along with the demonstration of running the code using custom and bundled scripts. Explains the creation of custom scripts in package.json, the process of bundling the project, and demonstrates running the code using custom and bundled scripts.']}, {'end': 9554.566, 'start': 9079.356, 'title': 'Introduction to expressjs with node', 'summary': 'Covers the introduction to expressjs, its features, and how to integrate it with node.js, enabling the creation of web applications or apis, reducing development time, providing built-in templates, aiding in database integration, easy application configuration, and middleware usage.', 'duration': 475.21, 'highlights': ['ExpressJS reduces application development time Using ExpressJS can reduce the number of hours spent on application development time.', 'ExpressJS provides built-in templates (Jade or EJS) for HTML needs Express provides built-in templates (Jade or EJS) for HTML needs, facilitating the creation of single-page, multi-page, or hybrid applications.', 'ExpressJS aids in database integration with different types of databases Express makes it easy to integrate with different types of databases like MongoDB, Oracle, or MySQL, allowing the development of applications using a combination of different databases.', 'ExpressJS simplifies application configuration Express makes it very easy to configure applications, reducing the need for extensive coding for configuration.', 'ExpressJS allows for the definition of middlewares for different tasks Express helps in defining middlewares for tasks like error handling, data manipulation, and logging, simplifying the development lifecycle.']}, {'end': 10043.31, 'start': 9555.226, 'title': 'Expressjs basics and routing', 'summary': 'Covers the basics of creating a simple application with expressjs, including the usage of express generator for creating boilerplate, the routing mechanism in expressjs, and the configuration of different http methods for restful and application urls.', 'duration': 488.084, 'highlights': ['The usage of Express generator for creating a complete boilerplate for an application. Express generator can be used to create a complete boilerplate for an application, simplifying the initial setup process.', 'The routing mechanism in ExpressJS, which provides a way to navigate to specific URLs and define callbacks for requests. ExpressJS provides a routing mechanism, eliminating the need to write custom logic for navigating to specific URLs and defining callbacks for requests.', 'The configuration of different HTTP methods such as GET, POST, PUT, and DELETE for RESTful and application URLs. Different HTTP methods like GET, POST, PUT, and DELETE can be configured for handling RESTful and application URLs.']}], 'duration': 1509.209, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk8534101.jpg', 'highlights': ['ExpressJS reduces application development time', 'ExpressJS provides built-in templates (Jade or EJS) for HTML needs', 'ExpressJS aids in database integration with different types of databases', 'ExpressJS simplifies application configuration', 'ExpressJS allows for the definition of middlewares for different tasks', 'The installation and usage of moment.js in a Node.js project is demonstrated', 'The specification of dependencies and dev dependencies in package.json, including the author and main file, is emphasized', 'Creating custom scripts in package.json and the process of bundling the project for execution is explained', 'The usage of Express generator for creating a complete boilerplate for an application', 'The routing mechanism in ExpressJS, which provides a way to navigate to specific URLs and define callbacks for requests', 'The configuration of different HTTP methods such as GET, POST, PUT, and DELETE for RESTful and application URLs', 'Node.js and npm setup The tutorial demonstrates the setup of node.js and npm, including checking the node.js version (8.12.0) and npm version (6.9.0)', "Creating package.json for a node-based project The process of creating a package.json file for a node-based project using 'npm init --yes' is explained, highlighting the metadata captured in the package.json file", 'Opening the project in Visual Studio code The tutorial concludes with the demonstration of opening the project in Visual Studio code to view the created package.json file and its metadata']}, {'end': 10788.953, 'segs': [{'end': 10394.226, 'src': 'embed', 'start': 10370.571, 'weight': 2, 'content': [{'end': 10377.515, 'text': 'most of the data which you are going to use is coming through rest apis and there are third-party solutions, like third-party apis,', 'start': 10370.571, 'duration': 6.944}, {'end': 10384.819, 'text': 'which are provided by companies, like for weather apis or for doing currency conversion or doing Market price analysis or these kind of things.', 'start': 10377.515, 'duration': 7.304}, {'end': 10386.701, 'text': 'So those all provide you rest api.', 'start': 10385.2, 'duration': 1.501}, {'end': 10394.226, 'text': 'Rest apis are kind of the future for communication between client side and server side third point uniform interface.', 'start': 10387.563, 'duration': 6.663}], 'summary': 'Rest apis are the future for communication, with third-party solutions for weather, currency conversion, and market analysis.', 'duration': 23.655, 'max_score': 10370.571, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk10370571.jpg'}, {'end': 10456.875, 'src': 'embed', 'start': 10428.02, 'weight': 1, 'content': [{'end': 10434.783, 'text': 'and most of the applications which actually depend on this kind of a data set or resource will follow the same kind of a URL schema.', 'start': 10428.02, 'duration': 6.763}, {'end': 10439.004, 'text': "It's very easy for developers to know what this resource is actually working on,", 'start': 10435.263, 'duration': 3.741}, {'end': 10442.986, 'text': 'because they might have worked on the same kind of a URL schema in different applications.', 'start': 10439.004, 'duration': 3.982}, {'end': 10446.547, 'text': "So it's very convenient for developers to work with this GPS.", 'start': 10443.466, 'duration': 3.081}, {'end': 10448.271, 'text': 'Next one is cacheable.', 'start': 10447.29, 'duration': 0.981}, {'end': 10450.712, 'text': 'So rest apis are also cacheable.', 'start': 10448.751, 'duration': 1.961}, {'end': 10451.132, 'text': 'So like.', 'start': 10450.732, 'duration': 0.4}, {'end': 10456.875, 'text': "that's a very good benefit of them, because rest apis don't work on session information on.", 'start': 10451.132, 'duration': 5.743}], 'summary': 'Rest apis use a standardized url schema, making it convenient for developers, and are cacheable.', 'duration': 28.855, 'max_score': 10428.02, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk10428020.jpg'}, {'end': 10556.917, 'src': 'embed', 'start': 10530.584, 'weight': 6, 'content': [{'end': 10537.265, 'text': 'So restful APIs can be used as a layer architecture on any kind of a legacy system or they can be used on any kind of a new system.', 'start': 10530.584, 'duration': 6.681}, {'end': 10540.166, 'text': 'Also, the last point is code on demand.', 'start': 10537.305, 'duration': 2.861}, {'end': 10547.068, 'text': "That means when you are making a restful API, it doesn't requires create everything on the first day of development.", 'start': 10540.686, 'duration': 6.382}, {'end': 10549.929, 'text': 'You can create as your requirements increase.', 'start': 10547.468, 'duration': 2.461}, {'end': 10556.917, 'text': 'So if you are working with a particular part on the UI or in the client side and that requires only a particular set of resources,', 'start': 10550.336, 'duration': 6.581}], 'summary': 'Restful apis can be used with legacy or new systems, allowing for incremental development.', 'duration': 26.333, 'max_score': 10530.584, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk10530584.jpg'}, {'end': 10665.469, 'src': 'embed', 'start': 10627.881, 'weight': 0, 'content': [{'end': 10635.165, 'text': 'So in a simple example, we have a group of people and we will say slash people will represent that group of people in our database.', 'start': 10627.881, 'duration': 7.284}, {'end': 10642.934, 'text': 'So now if I want to get the data of those people, I will just say slash people and make a get request to the server.', 'start': 10635.649, 'duration': 7.285}, {'end': 10645.716, 'text': "So, when you're making a HTTP request to,", 'start': 10643.634, 'duration': 2.082}, {'end': 10654.822, 'text': 'the server will define that this HTTP request is based on the get method and I want to get the information on a particular URL, which is slash people,', 'start': 10645.716, 'duration': 9.106}, {'end': 10657.604, 'text': 'and everything from that URL will be written back.', 'start': 10654.822, 'duration': 2.782}, {'end': 10665.469, 'text': 'So internally the server will have a logic to go to the database and get the information the end user customer can see the information.', 'start': 10658.144, 'duration': 7.325}], 'summary': 'Using a get request on /people in the database to retrieve and display information.', 'duration': 37.588, 'max_score': 10627.881, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk10627881.jpg'}, {'end': 10711.141, 'src': 'embed', 'start': 10685.314, 'weight': 5, 'content': [{'end': 10691.899, 'text': 'So when we send a request again on the same URL, which is the same resource which has slash people with the method post,', 'start': 10685.314, 'duration': 6.585}, {'end': 10695.702, 'text': 'we can send a payload that defines what we want to store in the database.', 'start': 10691.899, 'duration': 3.803}, {'end': 10698.933, 'text': 'and, based on our logic, on our server,', 'start': 10696.451, 'duration': 2.482}, {'end': 10704.937, 'text': 'the system will receive the information and process the information and store it based on how we configured the code for it.', 'start': 10698.933, 'duration': 6.004}, {'end': 10711.141, 'text': 'So instead of creating different URLs for different type of data, which we want to request or push back to the server.', 'start': 10705.497, 'duration': 5.644}], 'summary': 'Sending a post request to the same url allows storing payload in the database, avoiding the need for different urls for different data types.', 'duration': 25.827, 'max_score': 10685.314, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk10685314.jpg'}], 'start': 10043.31, 'title': 'Configuring routes and rest crud api in node.js', 'summary': 'Covers configuring route files in node.js, creating an app.js file, using route files for different methods and routes, and building rest crud api with key principles, benefits, architectural design, stateless model, support for xml and json, easy documentation, error handling, uniform interface, cacheability, layered system, code on demand, and usage of http methods in restful architecture.', 'chapters': [{'end': 10083.832, 'start': 10043.31, 'title': 'Configuring routes in node.js', 'summary': 'Discusses configuring route files in node.js, including creating an app.js file for application configuration, using route files for different methods and routes, and the flexibility to add multiple routes based on development needs.', 'duration': 40.522, 'highlights': ['You can create an app.js file for application configuration and route files for different methods and routes.', 'The default route files include index for the root URL and users for /users, providing flexibility to configure additional routes based on development needs.']}, {'end': 10788.953, 'start': 10084.252, 'title': 'Building rest crud api with node.js', 'summary': 'Discusses the key principles and benefits of rest apis, including its architectural design for communication, the stateless model, support for xml and json, easy documentation and error handling, uniform interface, cacheability, layered system, code on demand, and the usage of http methods in restful architecture.', 'duration': 704.701, 'highlights': ['Stateless model of REST APIs REST APIs are stateless, allowing for the client to only store authentication tokens and enabling easier load balancing in a distributed environment.', 'Usage of REST APIs in client-server communication REST APIs are widely utilized in modern applications such as Android, iOS, and web-based frameworks like React, Angular, and Vue.js, providing a standardized approach for data transfer between client and server.', 'Uniform interface of REST APIs REST APIs follow a standard way of defining URLs and schemas for resources, making it convenient for developers to work with similar URL schemas across different applications.', 'Cacheability of REST APIs REST APIs support caching of data, facilitated by the simplicity of data structures such as JSON and XML, allowing for efficient reuse of information and reducing the need for repetitive requests.', 'Layered system in REST APIs RESTful APIs are designed with a layered approach, enabling the integration of multiple data sources and the migration from legacy systems like SOAP to REST-based architecture.', 'Code on demand in REST APIs RESTful APIs allow for agile development by enabling the creation of resources based on evolving requirements, facilitating incremental deployment and scalability based on user interactions.', 'Usage of HTTP methods in RESTful architecture RESTful architecture relies on HTTP methods such as GET, POST, PUT, and DELETE for requesting, storing, updating, and deleting data, providing a standardized approach for data transfer and manipulation.']}], 'duration': 745.643, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk10043310.jpg', 'highlights': ['Usage of REST APIs in client-server communication REST APIs are widely utilized in modern applications such as Android, iOS, and web-based frameworks like React, Angular, and Vue.js, providing a standardized approach for data transfer between client and server.', 'Layered system in REST APIs RESTful APIs are designed with a layered approach, enabling the integration of multiple data sources and the migration from legacy systems like SOAP to REST-based architecture.', 'Usage of HTTP methods in RESTful architecture RESTful architecture relies on HTTP methods such as GET, POST, PUT, and DELETE for requesting, storing, updating, and deleting data, providing a standardized approach for data transfer and manipulation.', 'Cacheability of REST APIs REST APIs support caching of data, facilitated by the simplicity of data structures such as JSON and XML, allowing for efficient reuse of information and reducing the need for repetitive requests.', 'Uniform interface of REST APIs REST APIs follow a standard way of defining URLs and schemas for resources, making it convenient for developers to work with similar URL schemas across different applications.', 'Stateless model of REST APIs REST APIs are stateless, allowing for the client to only store authentication tokens and enabling easier load balancing in a distributed environment.', 'You can create an app.js file for application configuration and route files for different methods and routes.', 'The default route files include index for the root URL and users for /users, providing flexibility to configure additional routes based on development needs.']}, {'end': 12231.088, 'segs': [{'end': 10926.095, 'src': 'embed', 'start': 10896.527, 'weight': 1, 'content': [{'end': 10901.268, 'text': 'So once Express is imported into a code, We need to create a Express application.', 'start': 10896.527, 'duration': 4.741}, {'end': 10902.349, 'text': "So that's very simple.", 'start': 10901.568, 'duration': 0.781}, {'end': 10909.731, 'text': "So we'll write const app equal to Express and will execute this function.", 'start': 10902.369, 'duration': 7.362}, {'end': 10913.772, 'text': 'So this creates our Express application on the app variable.', 'start': 10910.191, 'duration': 3.581}, {'end': 10915.332, 'text': 'Now this app variable.', 'start': 10914.392, 'duration': 0.94}, {'end': 10918.333, 'text': "I'm going to define our API URLs.", 'start': 10915.352, 'duration': 2.981}, {'end': 10923.674, 'text': "So like I said in restful api's everything is based on resources.", 'start': 10918.753, 'duration': 4.921}, {'end': 10926.095, 'text': 'So every resource has a URL.', 'start': 10924.054, 'duration': 2.041}], 'summary': 'Creating an express application to define api urls based on resources.', 'duration': 29.568, 'max_score': 10896.527, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk10896527.jpg'}, {'end': 11351.527, 'src': 'embed', 'start': 11325.438, 'weight': 0, 'content': [{'end': 11331.08, 'text': "So what I'm going to do is I'm going to use this people object and add some people to it.", 'start': 11325.438, 'duration': 5.642}, {'end': 11334.981, 'text': 'So the people will have person and the person has to have a name.', 'start': 11331.34, 'duration': 3.641}, {'end': 11336.862, 'text': 'Okay in this part.', 'start': 11335.521, 'duration': 1.341}, {'end': 11341.923, 'text': 'I will just go to send some information from our client side to the server and add the data.', 'start': 11337.022, 'duration': 4.901}, {'end': 11346.605, 'text': 'So one tricky thing is we cannot make post calls from our client side or our browser directly.', 'start': 11342.544, 'duration': 4.061}, {'end': 11351.527, 'text': 'The reason is because when you type in any URL in the address bar that automatically configure it.', 'start': 11347.045, 'duration': 4.482}], 'summary': "Adding people to the 'people' object and sending information from client to server, highlighting the limitation of making post calls directly from the browser.", 'duration': 26.089, 'max_score': 11325.438, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk11325438.jpg'}, {'end': 12126.103, 'src': 'embed', 'start': 12093.913, 'weight': 2, 'content': [{'end': 12095.853, 'text': 'send the request again and it prints Amit now.', 'start': 12093.913, 'duration': 1.94}, {'end': 12100.092, 'text': "because it picks up the parameter which I'm sending in the URL.", 'start': 12096.51, 'duration': 3.582}, {'end': 12103.993, 'text': 'So this way you can write your URLs based on different parameters.', 'start': 12100.132, 'duration': 3.861}, {'end': 12108.315, 'text': "You don't have to create millions of different URLs for different millions of users.", 'start': 12104.173, 'duration': 4.142}, {'end': 12109.176, 'text': 'You have.', 'start': 12108.355, 'duration': 0.821}, {'end': 12116.259, 'text': 'you can just define that this part of the URL is a parameter and that will be received in your code and you can do your business logic based on it.', 'start': 12109.176, 'duration': 7.083}, {'end': 12118.96, 'text': 'So you can just write for being over here.', 'start': 12116.879, 'duration': 2.081}, {'end': 12126.103, 'text': 'Friends proving so this parameters are not limited to one you can send n number of parameters in the URL.', 'start': 12120.501, 'duration': 5.602}], 'summary': 'Sending parameters in urls helps avoid creating millions of unique urls for different users, allowing for flexibility and efficiency.', 'duration': 32.19, 'max_score': 12093.913, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk12093913.jpg'}, {'end': 12200.211, 'src': 'embed', 'start': 12174.734, 'weight': 3, 'content': [{'end': 12180.716, 'text': "So you can see it's not giving any data because it says this URL is not handled over here right now, postman.", 'start': 12174.734, 'duration': 5.982}, {'end': 12184.188, 'text': 'The reason is it requires a parameter called age.', 'start': 12181.328, 'duration': 2.86}, {'end': 12190.65, 'text': 'So if I write 11 over here it prints out that data because now the actual URL is getting matched.', 'start': 12184.329, 'duration': 6.321}, {'end': 12200.211, 'text': 'So you always have to keep in mind that what you are creating in the URL and will you be providing all the information or you are just going to provide some set of the information in your code?', 'start': 12191.29, 'duration': 8.921}], 'summary': "Url requires 'age' parameter. providing '11' returns data.", 'duration': 25.477, 'max_score': 12174.734, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk12174734.jpg'}], 'start': 10789.794, 'title': 'Node.js api development', 'summary': 'Delves into creating a restful api in node.js using express framework, defining url schema, handling requests, and implementing data storage. it emphasizes the importance of resources and urls in restful apis, and covers aspects such as handling request bodies, and understanding in-memory data storage. additionally, it discusses client-side data storage in databases like mongodb and mysql, and defines parameters in api urls for personalized queries, with examples and considerations for handling multiple parameters.', 'chapters': [{'end': 10926.095, 'start': 10789.794, 'title': 'Creating restful api in node.js', 'summary': 'Explains the process of creating a restful api in node.js using express framework, including the installation of express and the creation of api urls, emphasizing the importance of resources and urls in restful apis.', 'duration': 136.301, 'highlights': ['Express framework is used to create restful APIs and provides helper methods, middlewares, and plugins to configure node.js application and create APIs through it.', "Installation of Express is demonstrated using 'npm install --save express' to set up the necessary node module dependency.", 'The process involves creating an Express application, defining API URLs, and emphasizing that in restful APIs, everything is based on resources and each resource has a URL.']}, {'end': 11235.798, 'start': 10926.555, 'title': 'Creating a restful api with node.js', 'summary': "Explains how to create a restful api using node.js, defining url schema, handling api requests, starting the server on port 3000, and sending a simple 'hello world' message as a response.", 'duration': 309.243, 'highlights': ["Defining URL schema and handling API requests Explains the structure of resource URLs, such as 'people/person', and the method used for getting data, using 'app.get' to handle API requests for a particular URL with the 'get' method.", "Starting the server on port 3000 Demonstrates how to start the server on the default 'localhost' using 'app.listen' and specifying the port number, in this case, 3000, which is commonly used for Node.js applications.", "Sending a simple response Shows how to send a basic response using 'res.send' with a string, such as 'Hello world', as an example of the response sent from the server to the client.", 'Connecting to a database or using JSON data Mentions the possibility of connecting to a database like MongoDB or using JSON data to define the response, showcasing the flexibility to use different data sources or APIs with the created RESTful API.']}, {'end': 11891.749, 'start': 11236.418, 'title': 'Node.js api development', 'summary': 'Details the development of a json api using node.js, including implementing get, post, and delete requests, testing the api using postman, handling request bodies, and understanding in-memory data storage, with a focus on syntax, configuration, and functionality.', 'duration': 655.331, 'highlights': ['The chapter emphasizes restarting the Node.js application to make it listen to file changes and automatically restart the application, which is crucial for testing and development.', 'It explains the process of implementing a POST API, including modifying the business logic, sending data from the client side, using Postman for testing, and handling request bodies in the server code.', 'The transcript demonstrates the use of body-parser middleware to handle JSON or form data sent from the client side and how to configure it in the code, providing insights into practical application development.', 'It highlights the in-memory data storage nature of the server, explaining that data is stored as a JavaScript variable and is removed upon server restart, showcasing the limitations and characteristics of in-memory data storage in Node.js development.']}, {'end': 12231.088, 'start': 11892.341, 'title': 'Client-side data storage and api parameter handling', 'summary': 'Discusses storing data in databases like mongodb and mysql from the client side, as well as implementing put and delete calls, and defining parameters in api urls for personalized queries, with examples and considerations for handling multiple parameters.', 'duration': 338.747, 'highlights': ['The chapter discusses storing data in databases like MongoDB and MySQL from the client side. The chapter explains how to store client-side data in databases like MongoDB and MySQL, providing options for data storage.', 'Implementing put and delete calls is explained with examples. The process of implementing put and delete calls is detailed, offering insights into handling data updates and deletions in the API.', 'Defining parameters in API URLs for personalized queries is demonstrated with examples and considerations for handling multiple parameters. The chapter provides examples and considerations for defining parameters in API URLs to facilitate personalized queries, including considerations for handling multiple parameters.']}], 'duration': 1441.294, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk10789794.jpg', 'highlights': ['Express framework is used to create restful APIs and provides helper methods, middlewares, and plugins to configure node.js application and create APIs through it.', "Defining URL schema and handling API requests Explains the structure of resource URLs, such as 'people/person', and the method used for getting data, using 'app.get' to handle API requests for a particular URL with the 'get' method.", 'The chapter discusses storing data in databases like MongoDB and MySQL from the client side. The chapter explains how to store client-side data in databases like MongoDB and MySQL, providing options for data storage.', 'The chapter emphasizes restarting the Node.js application to make it listen to file changes and automatically restart the application, which is crucial for testing and development.']}, {'end': 13945.399, 'segs': [{'end': 12889.521, 'src': 'embed', 'start': 12843.302, 'weight': 9, 'content': [{'end': 12844.783, 'text': 'So we have the package edition file.', 'start': 12843.302, 'duration': 1.481}, {'end': 12851.927, 'text': 'So now we will create our server file in web project folder to define our starting files for node.js.', 'start': 12845.883, 'duration': 6.044}, {'end': 12863.524, 'text': 'So for that I will just create a server.js file and this we have dependency on mysql require MySQL like this and express.', 'start': 12852.387, 'duration': 11.137}, {'end': 12872.69, 'text': 'Const body parser.', 'start': 12871.169, 'duration': 1.521}, {'end': 12879.314, 'text': 'Require body parser.', 'start': 12877.673, 'duration': 1.641}, {'end': 12889.521, 'text': 'So now we will create a express application by saying app is equal to express.', 'start': 12885.398, 'duration': 4.123}], 'summary': 'Creating server.js file with dependencies on mysql and express, and creating an express application.', 'duration': 46.219, 'max_score': 12843.302, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk12843302.jpg'}, {'end': 13195.657, 'src': 'heatmap', 'start': 12934.839, 'weight': 0.708, 'content': [{'end': 12939.722, 'text': 'Otherwise you can provide the IP for the database the user for the database server.', 'start': 12934.839, 'duration': 4.883}, {'end': 12942.704, 'text': "It's going to be root and the password.", 'start': 12940.202, 'duration': 2.502}, {'end': 12958.655, 'text': "so the password is password, in this case database, and that's configuration about multiple statements which you want to set true.", 'start': 12944.884, 'duration': 13.771}, {'end': 12960.657, 'text': 'so now the connection object has been created.', 'start': 12958.655, 'duration': 2.002}, {'end': 12971.586, 'text': "now we'll just start the connection and it takes a callback which provides us feedback that the connection has been established or not.", 'start': 12960.657, 'duration': 10.929}, {'end': 12976.939, 'text': 'so it provides us error if the connection object is not connected.', 'start': 12972.378, 'duration': 4.561}, {'end': 12986.421, 'text': 'so we can just try error handling like this.', 'start': 12976.939, 'duration': 9.482}, {'end': 12992.542, 'text': "so if the connection is successful, it will just print connected, otherwise it's going to print connection field.", 'start': 12986.421, 'duration': 6.121}, {'end': 12995.463, 'text': "so now i'll go back to my terminal and clear the screen.", 'start': 12992.542, 'duration': 2.921}, {'end': 12998.144, 'text': 'you can see the files over here.', 'start': 12995.463, 'duration': 2.681}, {'end': 13003.826, 'text': "so now i'll just run nodemon, server.js.", 'start': 12998.144, 'duration': 5.682}, {'end': 13006.507, 'text': 'so it says connection failed.', 'start': 13003.826, 'duration': 2.681}, {'end': 13009.529, 'text': "that means it's not able to successfully connect to the database.", 'start': 13006.507, 'duration': 3.022}, {'end': 13010.269, 'text': "it's not a problem.", 'start': 13009.529, 'duration': 0.74}, {'end': 13013.09, 'text': 'i will see if the configuration is correct or not.', 'start': 13010.269, 'duration': 2.821}, {'end': 13017.072, 'text': "so i think it's looking for the database which we have, but we haven't created it.", 'start': 13013.09, 'duration': 3.982}, {'end': 13019.573, 'text': "so first i'll do is i will create this database right now.", 'start': 13017.072, 'duration': 2.501}, {'end': 13031.278, 'text': "So for creating a database in MySQL I'm using MySQL Workbench.", 'start': 13027.557, 'duration': 3.721}, {'end': 13033.878, 'text': 'So here we have option for create schema.', 'start': 13031.638, 'duration': 2.24}, {'end': 13036.539, 'text': 'So schema or database are same over here.', 'start': 13034.499, 'duration': 2.04}, {'end': 13040.64, 'text': "So I'll just write the name of it, which is Edureka and apply.", 'start': 13036.599, 'duration': 4.041}, {'end': 13044.781, 'text': 'So you can configure the character set and the collation for the database.', 'start': 13041.16, 'duration': 3.621}, {'end': 13047.102, 'text': 'And it just confirms you the query.', 'start': 13045.301, 'duration': 1.801}, {'end': 13048.962, 'text': 'So now we have a database created over here.', 'start': 13047.462, 'duration': 1.5}, {'end': 13052.752, 'text': "We'll just go back to my code and save it again.", 'start': 13049.329, 'duration': 3.423}, {'end': 13057.836, 'text': 'So now you can see so what I did is I just went back to my server.js and saved it again.', 'start': 13053.212, 'duration': 4.624}, {'end': 13061.599, 'text': 'So which triggered the nodemon to reload the node.js server.', 'start': 13058.276, 'duration': 3.323}, {'end': 13065.262, 'text': "So now because I have the database ready, it's able to connect to the MySQL.", 'start': 13062.12, 'duration': 3.142}, {'end': 13067.564, 'text': 'Otherwise, it was giving an error that the connection was failing.', 'start': 13065.302, 'duration': 2.262}, {'end': 13071.467, 'text': 'So the database creation has to be done before you start with the coding part.', 'start': 13068.005, 'duration': 3.462}, {'end': 13075.431, 'text': 'The next step is defining all the routes for our application.', 'start': 13072.268, 'duration': 3.163}, {'end': 13082.985, 'text': 'so the first thing is we are going to create different routes for this application which are going to be in different files.', 'start': 13076.224, 'duration': 6.761}, {'end': 13085.426, 'text': 'so first i will create a routes folder.', 'start': 13082.985, 'duration': 2.441}, {'end': 13089.166, 'text': 'in this folder i will create people.js.', 'start': 13085.426, 'duration': 3.74}, {'end': 13103.209, 'text': 'this will have the route for all people and in this file i will import express, require, express and define the router.', 'start': 13089.166, 'duration': 14.043}, {'end': 13115.077, 'text': "so i'll just define so this is a router object for the express application on which we are going to create all the routes.", 'start': 13103.209, 'duration': 11.868}, {'end': 13124.661, 'text': "so i'll just define get and the handler for that.", 'start': 13115.077, 'duration': 9.584}, {'end': 13130.943, 'text': "let's define request and response.", 'start': 13124.661, 'duration': 6.282}, {'end': 13133.384, 'text': "now we have to use this router, so i'll just export.", 'start': 13130.943, 'duration': 2.441}, {'end': 13142.359, 'text': 'this module, not exports, is equal to router and in my server file i have to import this in my application.', 'start': 13133.384, 'duration': 8.975}, {'end': 13155.984, 'text': "so i'll just import const people routes, equal to require.", 'start': 13142.359, 'duration': 13.625}, {'end': 13166.679, 'text': 'so i have people out here and then in my app.js for the application i will define app dot use path.', 'start': 13155.984, 'duration': 10.695}, {'end': 13174.725, 'text': "so it's going to be slash people and the handle of that, the handler for that, will be people routes.", 'start': 13166.679, 'duration': 8.046}, {'end': 13183.371, 'text': 'so all the routes which are coming for slash people will go to the people routes file and in that we can handle the request which we need to respond back.', 'start': 13174.725, 'duration': 8.646}, {'end': 13188.014, 'text': "so now in my evil file i'll just go back to the route which i have, which is get.", 'start': 13183.371, 'duration': 4.643}, {'end': 13192.094, 'text': "So we're here, we can make a database connection and do the query part.", 'start': 13188.752, 'duration': 3.342}, {'end': 13195.657, 'text': 'So for creating the connection first, I will do one cleanup.', 'start': 13192.675, 'duration': 2.982}], 'summary': 'Setting up database connection, creating database, and defining routes for the application.', 'duration': 260.818, 'max_score': 12934.839, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk12934839.jpg'}, {'end': 13468.716, 'src': 'embed', 'start': 13437.773, 'weight': 6, 'content': [{'end': 13439.313, 'text': 'it converts into a JSON response.', 'start': 13437.773, 'duration': 1.54}, {'end': 13443.254, 'text': "So you don't have to manipulate all the array or the table structure.", 'start': 13439.793, 'duration': 3.461}, {'end': 13446.895, 'text': 'It provides you a structure which can be directly used in your application, which is very good.', 'start': 13443.374, 'duration': 3.521}, {'end': 13449.415, 'text': 'So you can use different types of structures.', 'start': 13447.535, 'duration': 1.88}, {'end': 13454.776, 'text': 'You can reuse any kind of queries with mysql npm package and run them on your mysql server.', 'start': 13449.455, 'duration': 5.321}, {'end': 13459.017, 'text': 'So this was example of running a mysql server with node.js.', 'start': 13455.636, 'duration': 3.381}, {'end': 13468.716, 'text': "So today we're going to learn how to use MongoDB and node.js along each other.", 'start': 13464.755, 'duration': 3.961}], 'summary': 'Node.js can provide a json response, enabling easy manipulation and query reuse for mysql and mongodb servers.', 'duration': 30.943, 'max_score': 13437.773, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk13437773.jpg'}, {'end': 13558.094, 'src': 'embed', 'start': 13519.772, 'weight': 0, 'content': [{'end': 13524.976, 'text': "Instead, we use methods or properties which are available on the databases, and we're going to get data from them.", 'start': 13519.772, 'duration': 5.204}, {'end': 13534.823, 'text': 'The key advantage of using a NoSQL database is NoSQL databases actually have unstructured data which can contain a mixture of different types of data,', 'start': 13525.676, 'duration': 9.147}, {'end': 13540.087, 'text': 'like different models or including a key value or different types of graph format of data.', 'start': 13534.823, 'duration': 5.264}, {'end': 13546.602, 'text': 'and these schema like, or the way we are going to push data into a database, is going to be very dynamic.', 'start': 13541.096, 'duration': 5.506}, {'end': 13551.887, 'text': 'so in a traditional database like mysql, sql or oracle, what we do is table structure will be defined,', 'start': 13546.602, 'duration': 5.285}, {'end': 13558.094, 'text': 'like how many columns can be added into this table and what are the values of the data which you are adding to the columns in the cells.', 'start': 13551.887, 'duration': 6.207}], 'summary': 'Nosql databases offer advantages with unstructured data and dynamic schema.', 'duration': 38.322, 'max_score': 13519.772, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk13519772.jpg'}, {'end': 13617.674, 'src': 'embed', 'start': 13594.176, 'weight': 8, 'content': [{'end': 13600.76, 'text': "like when you're sending some information from the server or the database to the client side, like a web application or a native application,", 'start': 13594.176, 'duration': 6.584}, {'end': 13604.143, 'text': "they don't need to reformat the structure again into json or xml.", 'start': 13600.76, 'duration': 3.383}, {'end': 13606.745, 'text': 'Most of the databases, like the NoSQL databases,', 'start': 13604.583, 'duration': 2.162}, {'end': 13615.852, 'text': 'actually store in JSON and whatever the information is stored on the database without doing any formatting, can be directly pushed to a client or web,', 'start': 13606.745, 'duration': 9.107}, {'end': 13617.674, 'text': 'client or native application.', 'start': 13615.852, 'duration': 1.822}], 'summary': 'Nosql databases store data in json format, eliminating the need for reformatting when sending to client side applications.', 'duration': 23.498, 'max_score': 13594.176, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk13594176.jpg'}, {'end': 13906.581, 'src': 'embed', 'start': 13872.37, 'weight': 7, 'content': [{'end': 13875.573, 'text': 'and in the different document it can be written as name only.', 'start': 13872.37, 'duration': 3.203}, {'end': 13885.08, 'text': 'So it creates a lot of problem when the same database has been used by different developers because they still have to follow a specific schema when they are inputting the data.', 'start': 13876.033, 'duration': 9.047}, {'end': 13889.744, 'text': 'Otherwise, they might have the same value for a record on different keys in the system.', 'start': 13885.481, 'duration': 4.263}, {'end': 13894.248, 'text': "So I will explain you this in an example later on, but we'll cover this in the code example.", 'start': 13890.225, 'duration': 4.023}, {'end': 13897.851, 'text': "So the other thing is we don't create relations in MongoDB.", 'start': 13895.069, 'duration': 2.782}, {'end': 13906.581, 'text': "So the benefit of this is we don't need to look for the same record in another table and get the data and combine them using joint queries and all.", 'start': 13898.559, 'duration': 8.022}], 'summary': 'In mongodb, lack of relations reduces need for joint queries and schema restrictions, preventing data input issues.', 'duration': 34.211, 'max_score': 13872.37, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk13872370.jpg'}], 'start': 12231.088, 'title': 'Integrating mysql and mongodb with node.js', 'summary': 'Covers integrating mysql with node.js, highlighting mysql features, installation, and building a crit api. it also discusses the benefits of using mysql with node.js, including scalability, low cost of ownership, and secure data protection. additionally, it covers setting up a mysql database and api implementation, along with introducing mongodb and its advantages for creating a crud api in node.js.', 'chapters': [{'end': 12277.493, 'start': 12231.088, 'title': 'Integrating mysql with node.js', 'summary': 'Explains how to integrate a mysql database with node.js, covering the agenda of mysql features, installation, and building a crit api, while also emphasizing mysql as a relational database management system.', 'duration': 46.405, 'highlights': ['MySQL is a relational database management system which allows us to manage a database and create records based on tables and rows.', 'The agenda for this session includes MySQL features, installation, and building a CRIT API with Node.js and MySQL.', "Node.js and MySQL integration is the focus of today's session."]}, {'end': 13009.529, 'start': 12278.053, 'title': 'Mysql: open source database with scalability and security', 'summary': 'Discusses the benefits of using mysql with node.js, including scalability, low cost of ownership, secure data protection, ease of management, and high performance, emphasizing its compatibility with different platforms and support from oracle. it also covers the installation process and creating a node.js application with mysql integration.', 'duration': 731.476, 'highlights': ["MySQL's Scalability and Flexibility with Node.js MySQL offers scalability, allowing installation on low-end machines like Raspberry Pi and large-scale servers, making it compatible with various hardware variations.", "Low Cost of Ownership with MySQL as an Open Source Solution MySQL's open-source nature eliminates startup costs for licensing, enabling developers to download and start developing applications without additional expenses.", 'Secure Data Protection and Industry-Standard Security Implementation MySQL provides robust security mechanisms developed over 10 years, following industry standards for secure handling of user accesses and ownerships, ensuring secure data protection.', 'Ease of Management and Tools for Database Maintenance MySQL offers user-friendly tools like MySQL Workbench for database maintenance, event scheduling, and automatic configurations, making it easy to download, maintain, and start developing with MySQL.', 'High Performance and Caching Mechanisms in MySQL MySQL offers different ways of caching data in memory and indexing, providing high performance for applications with demanding performance requirements.']}, {'end': 13454.776, 'start': 13009.529, 'title': 'Mysql database setup and api implementation', 'summary': "Covers the setup of a mysql database using mysql workbench, including creating a database, defining routes using express, making a database connection, creating a table, adding records, and verifying the api's response using postman.", 'duration': 445.247, 'highlights': ["The first step involves creating a database named 'Edureka' using MySQL Workbench, resulting in a successful connection to MySQL and resolving connection errors (Quantifiable data: database created and connection established).", "Defining routes for the application involves creating different routes in separate files, importing Express, and defining a router object to handle the routes (Quantifiable data: creation of 'people.js' file and definition of routes).", "Creating a connection file named 'connection.js' and moving the connection details from 'app.js' to the new file, then exporting the MySQL connection (Quantifiable data: creation of 'connection.js' file and exporting MySQL connection).", "After creating a table named 'people' in MySQL Workbench, adding records to the table and successfully retrieving the records using the MySQL npm package, which automatically converts the records into JSON responses (Quantifiable data: successful addition and retrieval of records, automatic conversion to JSON response).", "Using Postman to send a GET request to the URL 'localhost:3000/people' and receiving a JSON response, showcasing the ability of the MySQL npm package to convert retrieved records into a structured JSON response, simplifying their use in the application (Quantifiable data: successful retrieval and conversion of records into a JSON response)."]}, {'end': 13945.399, 'start': 13455.636, 'title': 'Mongodb and node.js: creating a crud api', 'summary': 'Covers the introduction to mongodb, including its advantages, features, and comparison with traditional databases, as well as an overview of nosql, different nosql databases available, and the benefits of using mongodb with node.js for creating a crud api.', 'duration': 489.763, 'highlights': ['NoSQL databases do not follow defined structures and allow dynamic schemas, providing flexibility for developers. NoSQL databases offer unstructured data with dynamic schemas, allowing a mixture of different types of data and flexible schema for each record, reducing unnecessary records and enabling easy data transfer without reformatting.', 'Introduction to MongoDB: MongoDB is an open-source non-relational database that stores data in collections and documents, offering horizontal scalability and storing JSON documents with dynamic schemas. MongoDB stores data in collections and documents, preserving functionalities while offering horizontal scalability, and storing JSON documents with dynamic schemas, providing flexibility for developers.', 'Comparison with traditional databases: MongoDB does not create relations, unlike traditional databases, simplifying data storage and retrieval. MongoDB does not create relations, simplifying data storage by storing all related information in one document and eliminating the need for complex joint queries.', 'Overview of NoSQL databases: MongoDB, Apache IBase, Cassandra, Redis, and Neo4j are some of the NoSQL databases available in the market, each offering unique features and compatibility with different platforms. Various NoSQL databases, such as MongoDB, Apache IBase, Cassandra, Redis, and Neo4j, are available in the market, each with unique features and platform compatibility.']}], 'duration': 1714.311, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk12231088.jpg', 'highlights': ['MySQL offers scalability, enabling installation on low-end machines and large-scale servers.', "MySQL's open-source nature eliminates startup costs for licensing, enabling developers to start developing applications without additional expenses.", 'MySQL provides robust security mechanisms developed over 10 years, ensuring secure data protection.', 'MySQL offers user-friendly tools like MySQL Workbench for database maintenance and automatic configurations.', 'MySQL offers different ways of caching data in memory and indexing, providing high performance for applications.', "Creating a database named 'Edureka' using MySQL Workbench resulted in a successful connection to MySQL.", 'Defining routes for the application involves creating different routes in separate files and defining a router object.', "Creating a connection file named 'connection.js' and exporting the MySQL connection.", 'Successfully adding records to the table and retrieving the records using the MySQL npm package.', "Using Postman to send a GET request to the URL 'localhost:3000/people' and receiving a JSON response.", 'NoSQL databases offer unstructured data with dynamic schemas, allowing a mixture of different types of data and flexible schema for each record.', 'MongoDB stores data in collections and documents, offering horizontal scalability and storing JSON documents with dynamic schemas.', 'MongoDB does not create relations, simplifying data storage by storing all related information in one document.', 'Various NoSQL databases, such as MongoDB, Apache IBase, Cassandra, Redis, and Neo4j, are available in the market.']}, {'end': 16453.241, 'segs': [{'end': 14186.295, 'src': 'embed', 'start': 14160.986, 'weight': 2, 'content': [{'end': 14166.691, 'text': 'So I will just have tilled which means I use the folder slash data, which is the data folder and the DB folder.', 'start': 14160.986, 'duration': 5.705}, {'end': 14169.313, 'text': 'So these are not created on my system by default.', 'start': 14166.991, 'duration': 2.322}, {'end': 14170.314, 'text': 'I have to create them.', 'start': 14169.333, 'duration': 0.981}, {'end': 14173.497, 'text': "So I've created them earlier so I can just use them again.", 'start': 14170.694, 'duration': 2.803}, {'end': 14177.82, 'text': "So I'll just run this command and it will start the database server for me.", 'start': 14173.897, 'duration': 3.923}, {'end': 14181.003, 'text': 'So run this command.', 'start': 14180.162, 'duration': 0.841}, {'end': 14182.293, 'text': 'Okay I got an error.', 'start': 14181.083, 'duration': 1.21}, {'end': 14184.975, 'text': 'The reason is the command is not correct.', 'start': 14182.353, 'duration': 2.622}, {'end': 14186.295, 'text': 'So you have to write like this.', 'start': 14185.015, 'duration': 1.28}], 'summary': 'Creating and using data and db folders to start database server, encountering command error', 'duration': 25.309, 'max_score': 14160.986, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk14160986.jpg'}, {'end': 14234.609, 'src': 'embed', 'start': 14206.403, 'weight': 3, 'content': [{'end': 14209.586, 'text': 'And you can find all the other details like where are the files are available.', 'start': 14206.403, 'duration': 3.183}, {'end': 14214.692, 'text': 'So the files are available in the users per being slash data slash DB and all those things.', 'start': 14209.606, 'duration': 5.086}, {'end': 14218.657, 'text': "So we're going to start our connections to this MongoDB database now.", 'start': 14215.393, 'duration': 3.264}, {'end': 14222.281, 'text': 'So one approach is using the Mongo executable in our code.', 'start': 14219.157, 'duration': 3.124}, {'end': 14228.266, 'text': 'I will open a new tab in my terminal or if you are on a Windows machine, you have to create another command prompt window.', 'start': 14222.904, 'duration': 5.362}, {'end': 14231.228, 'text': 'So the first tab is running the MongoDB server.', 'start': 14228.627, 'duration': 2.601}, {'end': 14232.428, 'text': "You don't need to close this.", 'start': 14231.268, 'duration': 1.16}, {'end': 14234.609, 'text': "The second one, it's a new terminal window.", 'start': 14232.809, 'duration': 1.8}], 'summary': 'Files available in users/perbeing/data/db. starting connections to mongodb using mongo executable in code.', 'duration': 28.206, 'max_score': 14206.403, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk14206403.jpg'}, {'end': 14867.317, 'src': 'embed', 'start': 14832.08, 'weight': 5, 'content': [{'end': 14836.161, 'text': 'So based on your file changes, it starts the code again and again, which is very helpful.', 'start': 14832.08, 'duration': 4.081}, {'end': 14839.402, 'text': "You don't need to restart the node.js code again and again by yourself.", 'start': 14836.241, 'duration': 3.161}, {'end': 14841.042, 'text': 'It automatically handled by the system.', 'start': 14839.542, 'duration': 1.5}, {'end': 14843.603, 'text': 'We are connected to a MongoDB database now.', 'start': 14841.603, 'duration': 2}, {'end': 14846.924, 'text': 'We need to get the data from the MongoDB.', 'start': 14844.383, 'duration': 2.541}, {'end': 14850.005, 'text': 'So for that, what we do is we create models.', 'start': 14847.484, 'duration': 2.521}, {'end': 14856.172, 'text': 'Models are for creating a schema and for accessing the data from a particular collection.', 'start': 14850.649, 'duration': 5.523}, {'end': 14867.317, 'text': "So in this case, I'm going to create a new folder, name it as model, and in this, I will create a new file which will be courses.model.js.", 'start': 14856.832, 'duration': 10.485}], 'summary': 'System automatically handles code restart, connects to mongodb, creates models for data access.', 'duration': 35.237, 'max_score': 14832.08, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk14832080.jpg'}, {'end': 16028.606, 'src': 'embed', 'start': 16003.772, 'weight': 0, 'content': [{'end': 16009.935, 'text': 'So over here now I can write this dot course ID and course name.', 'start': 16003.772, 'duration': 6.163}, {'end': 16012.497, 'text': "And instead of TH, we're going to use DDs.", 'start': 16010.336, 'duration': 2.161}, {'end': 16019.801, 'text': "Now refresh the page and now you can see it's printing results which are ID name and two is the ID and node shares.", 'start': 16013.137, 'duration': 6.664}, {'end': 16025.084, 'text': "So now we're getting data from MongoDB and putting it inside our HTML content.", 'start': 16020.441, 'duration': 4.643}, {'end': 16028.606, 'text': 'So we have completed example of getting data from MongoDB.', 'start': 16025.684, 'duration': 2.922}], 'summary': 'Retrieved data from mongodb and inserted into html content.', 'duration': 24.834, 'max_score': 16003.772, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk16003772.jpg'}, {'end': 16130.594, 'src': 'embed', 'start': 16080.086, 'weight': 8, 'content': [{'end': 16082.848, 'text': "this one is not required, so i'll just remove this last one.", 'start': 16080.086, 'duration': 2.762}, {'end': 16086.59, 'text': 'duration and fees.', 'start': 16082.848, 'duration': 3.742}, {'end': 16088.632, 'text': "let's see how this prints on the page.", 'start': 16086.59, 'duration': 2.042}, {'end': 16091.414, 'text': 'so first you have to configure the route for that.', 'start': 16088.632, 'duration': 2.782}, {'end': 16093.935, 'text': "so i'll just write router dot, get.", 'start': 16091.414, 'duration': 2.521}, {'end': 16097.498, 'text': "that's for creating the post page which is going to be at had.", 'start': 16093.935, 'duration': 3.563}, {'end': 16103.144, 'text': "i'm going to write response dot, render add course.", 'start': 16097.498, 'duration': 5.646}, {'end': 16105.024, 'text': "now let's go to the add page.", 'start': 16103.144, 'duration': 1.88}, {'end': 16106.285, 'text': 'this is not defined.', 'start': 16105.024, 'duration': 1.261}, {'end': 16106.745, 'text': "that's a error.", 'start': 16106.285, 'duration': 0.46}, {'end': 16112.407, 'text': "the reason is i haven't passed it over here, refresh, and it prints this form.", 'start': 16106.745, 'duration': 5.662}, {'end': 16117.289, 'text': 'so the css or the layout for this form is not correct, which we can fix later.', 'start': 16112.407, 'duration': 4.882}, {'end': 16120.97, 'text': 'but i will just write pr over here to at least make at least sense.', 'start': 16117.289, 'duration': 3.681}, {'end': 16125.952, 'text': 'now we got this form and missed out a submit button at the end of this form.', 'start': 16120.97, 'duration': 4.982}, {'end': 16130.594, 'text': "so i'll just write add course over here and define it as type some.", 'start': 16125.952, 'duration': 4.642}], 'summary': 'Configuring route for post page, fixing errors, adding submit button.', 'duration': 50.508, 'max_score': 16080.086, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk16080086.jpg'}, {'end': 16286.452, 'src': 'embed', 'start': 16261.151, 'weight': 4, 'content': [{'end': 16265.853, 'text': "there was another field, which is course id, which we haven't received from the client side.", 'start': 16261.151, 'duration': 4.702}, {'end': 16268.395, 'text': "So we're going to put it from the client side over here only.", 'start': 16265.873, 'duration': 2.522}, {'end': 16278.682, 'text': "So I'm going to write math dot random create a random number multiply that with a big number and get a really random number math dot C like this.", 'start': 16268.775, 'duration': 9.907}, {'end': 16283.586, 'text': "So I'm just going to create a random number for every ID which we want to store and add it to the course ID over here.", 'start': 16279.003, 'duration': 4.583}, {'end': 16284.831, 'text': 'and save this record.', 'start': 16284.011, 'duration': 0.82}, {'end': 16286.452, 'text': "So let's run this code now.", 'start': 16285.252, 'duration': 1.2}], 'summary': 'Generating random course ids from client side for record saving.', 'duration': 25.301, 'max_score': 16261.151, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk16261151.jpg'}], 'start': 13945.399, 'title': 'Benefits and implementation of mongodb', 'summary': 'Highlights the benefits of mongodb for database processing, including reduced query processing effort, faster query execution, and key features such as indexing, replication, ad hoc queries, schema-less, and sharding. it also outlines the steps to download, set up, and connect to a mongodb server, creating a node.js project, initializing dependencies, connecting to mongodb, setting up a mongodb schema and model using mongoose, and connecting to a mongodb database to manage course data.', 'chapters': [{'end': 13987.029, 'start': 13945.399, 'title': 'Benefits of mongodb for database processing', 'summary': 'Highlights the benefits of using mongodb for database processing, including reduced query processing effort, faster query execution, and key features such as indexing, replication, ad hoc queries, schema-less, and sharding.', 'duration': 41.63, 'highlights': ['The queries are much more faster because everything is at one place, reducing the effort which the database has to process when writing queries.', 'Features of MongoDB include indexing, replication, ad hoc queries, schema-less, and sharding, which are beneficial for database processing.', 'The chapter covers MongoDB installation, running a MongoDB server, and creating CRUD API based on the server.']}, {'end': 14454.955, 'start': 13987.829, 'title': 'Setting up mongodb server & connecting using mongodb executables', 'summary': 'Outlines the steps to download, set up, and connect to a mongodb server, including details about downloading the community server, starting the mongodb server on different operating systems, and using mongodb executables to connect to the database and perform operations.', 'duration': 467.126, 'highlights': ['The chapter outlines the steps to download, set up, and connect to a MongoDB server, including details about downloading the community server, starting the MongoDB server on different operating systems, and using MongoDB executables to connect to the database and perform operations. Downloading the community server, starting MongoDB server on different operating systems, using MongoDB executables to connect and perform operations.', 'Details about the community server, including the version, operating system compatibility, and package type for download, are provided. Information about the community server version, operating system compatibility, and package type for download.', "The process of starting the MongoDB server using the executable file 'mongodb' is explained, along with the command to execute it on different operating systems. Explanation of starting the MongoDB server using the 'mongodb' executable and the command to execute it on different operating systems."]}, {'end': 14950.809, 'start': 14456.316, 'title': 'Creating node.js mongodb api', 'summary': 'Covers the process of creating a node.js project, initializing dependencies, connecting to mongodb, handling warnings, and creating schema using mongoose, highlighting the key steps and dependencies involved.', 'duration': 494.493, 'highlights': ['Creating a Node.js project and initializing dependencies with npm init and npm install The process involves creating a new Node.js project, initializing it using npm init, and installing dependencies such as Express, handlebars, mongoose, body parser, and nodemon using npm install.', 'Connecting Node.js environment with MongoDB using Mongoose Mongoose, an adapter for connecting Node.js environment with MongoDB server, is utilized by defining the MongoDB URL and creating a simple connection without any configurations, providing basic information to connect.', 'Handling warnings and utilizing nodemon for automatic code restart To handle warnings, a configuration is passed in the Mongo client, and nodemon is used to automatically restart the Node.js code based on file changes, eliminating the need for manual restarts.', 'Creating schema for MongoDB using Mongoose for standardization of data Mongoose aids in creating a schema for MongoDB to standardize data storage, allowing developers to avoid confusion and unnecessary burden on the code due to different keys for the same type of record.']}, {'end': 15746.427, 'start': 14950.809, 'title': 'Setting up mongodb and express application', 'summary': 'Demonstrates setting up a mongodb schema and model using mongoose, creating an express application, configuring handlebars, and connecting to mongodb to retrieve and display data, with an emphasis on best practices and code organization.', 'duration': 795.618, 'highlights': ['The chapter demonstrates setting up a MongoDB schema and model using Mongoose, creating an Express application, configuring handlebars, and connecting to MongoDB to retrieve and display data. Setting up MongoDB schema and model, creating Express application, configuring handlebars, connecting to MongoDB, retrieving and displaying data', 'The best practice of creating a separate folder called controllers to define all the routes, and connecting to MongoDB to get data and return the template is emphasized. Best practice of creating separate folder for controllers, connecting to MongoDB to get data and return template', 'The need to export the router from the controller file to ensure proper configuration and functionality is highlighted. Importance of exporting the router from the controller file for proper configuration and functionality']}, {'end': 16453.241, 'start': 15746.927, 'title': 'Connecting to mongodb and setting up course data', 'summary': "Details the process of connecting to a mongodb database, setting up a collection named 'course', adding records to the collection, retrieving the data, and creating templates to display the courses. it also covers creating a form to add new courses and handling the process of saving the course information to the database.", 'duration': 706.314, 'highlights': ["The process of connecting to a MongoDB database and setting up a collection named 'course' is detailed. The speaker demonstrates connecting to a local MongoDB instance, creating a collection named 'course' in the 'Edureka' database, and adding records to the collection.", "Creating templates to display the courses and iterating through the data to present it in HTML form is explained. The speaker creates a new template named 'list.hbs', populates it with data from MongoDB, and iterates through the content to display the course ID and name in an HTML table.", 'The process of adding new courses through a form and handling the saving of course information to the database is detailed. The speaker demonstrates creating a form to add new courses, configuring the route and method for the form, and handling the process of saving the course information to the MongoDB database.']}], 'duration': 2507.842, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk13945399.jpg', 'highlights': ['Features of MongoDB include indexing, replication, ad hoc queries, schema-less, and sharding, beneficial for database processing.', 'The queries are much faster, reducing the effort for database processing.', 'The chapter outlines the steps to download, set up, and connect to a MongoDB server.', 'Creating a Node.js project, initializing dependencies with npm init and npm install.', 'Connecting Node.js environment with MongoDB using Mongoose.', 'Creating a schema for MongoDB using Mongoose for standardization of data.', 'Setting up a MongoDB schema and model using Mongoose, creating an Express application, and connecting to MongoDB.', "The process of connecting to a MongoDB database and setting up a collection named 'course' is detailed.", 'Creating templates to display the courses and iterating through the data to present it in HTML form.', 'The process of adding new courses through a form and handling the saving of course information to the database.']}, {'end': 18162.752, 'segs': [{'end': 16512.484, 'src': 'embed', 'start': 16486.64, 'weight': 0, 'content': [{'end': 16493.825, 'text': 'I was using course ID with a D capital and actually the implementation was course ID with a D small and it was not working correctly.', 'start': 16486.64, 'duration': 7.185}, {'end': 16501.344, 'text': 'If that schema check was not there, the record would have been added and I would have received blank values or undefined values for that,', 'start': 16494.639, 'duration': 6.705}, {'end': 16502.044, 'text': "and that's a problem.", 'start': 16501.344, 'duration': 0.7}, {'end': 16505.648, 'text': "So that's why mongoose is good to create schemas and all in workbook.", 'start': 16502.145, 'duration': 3.503}, {'end': 16512.484, 'text': 'Alright, so this covers our basic example of setting up a CRUD operation with MongoDB and node.js.', 'start': 16506.38, 'duration': 6.104}], 'summary': 'Schema check prevented incorrect data insertion, demonstrating the value of using mongoose for setting up crud operations with mongodb and node.js.', 'duration': 25.844, 'max_score': 16486.64, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk16486640.jpg'}, {'end': 16682.675, 'src': 'embed', 'start': 16658.7, 'weight': 4, 'content': [{'end': 16666.761, 'text': "No matter what technology or platform you're studying, if you read about its history, why it was made, if you go for the question why it was made,", 'start': 16658.7, 'duration': 8.061}, {'end': 16668.203, 'text': "you'll get to know it better.", 'start': 16666.761, 'duration': 1.442}, {'end': 16670.143, 'text': "You'll get to understand it better.", 'start': 16668.783, 'duration': 1.36}, {'end': 16677.952, 'text': 'So yeah, the problem that many of the developers were facing or are still facing, who are not using something like Docker,', 'start': 16671.004, 'duration': 6.948}, {'end': 16682.675, 'text': "is that if you have ever done, let's say, web development using PHP or.", 'start': 16677.952, 'duration': 4.723}], 'summary': 'Understanding technology history enhances knowledge and problem-solving for developers.', 'duration': 23.975, 'max_score': 16658.7, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk16658700.jpg'}, {'end': 17500.774, 'src': 'embed', 'start': 17465.338, 'weight': 2, 'content': [{'end': 17467.72, 'text': 'Okay, run npm install.', 'start': 17465.338, 'duration': 2.382}, {'end': 17475.965, 'text': 'So this is like very easily understandable commands copy package.json inside the app folder and then run the npm install.', 'start': 17468.38, 'duration': 7.585}, {'end': 17479.948, 'text': 'So this command will be run inside this folder of the docker container.', 'start': 17476.345, 'duration': 3.603}, {'end': 17485.728, 'text': 'and what npm install would do is whatever packages are listed inside package.json.', 'start': 17480.646, 'duration': 5.082}, {'end': 17487.829, 'text': 'if you remember, we have express.', 'start': 17485.728, 'duration': 2.101}, {'end': 17490.95, 'text': 'so those packages will be installed.', 'start': 17487.829, 'duration': 3.121}, {'end': 17500.774, 'text': 'okay. then we tell docker to now dot over here means the current directory the file is in.', 'start': 17490.95, 'duration': 9.824}], 'summary': 'Run npm install to install packages listed in package.json inside docker container.', 'duration': 35.436, 'max_score': 17465.338, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk17465338.jpg'}, {'end': 17548.053, 'src': 'embed', 'start': 17520.106, 'weight': 1, 'content': [{'end': 17523.909, 'text': 'and lastly, if you remember, we had a port number which we were using.', 'start': 17520.106, 'duration': 3.803}, {'end': 17524.989, 'text': "for us it's 3000.", 'start': 17523.909, 'duration': 1.08}, {'end': 17528.772, 'text': 'so we need to expose a port number as well.', 'start': 17524.989, 'duration': 3.783}, {'end': 17533.436, 'text': 'okay, yeah, so i think this is it we are done.', 'start': 17528.772, 'duration': 4.664}, {'end': 17536.478, 'text': "now we'll try and run this inside docker.", 'start': 17533.436, 'duration': 3.042}, {'end': 17540.886, 'text': 'okay, so first we need to build the docker image.', 'start': 17537.643, 'duration': 3.243}, {'end': 17543.008, 'text': 'we only have a docker file right now.', 'start': 17540.886, 'duration': 2.122}, {'end': 17548.053, 'text': 'so next step is to build a docker image from the docker file.', 'start': 17543.008, 'duration': 5.045}], 'summary': 'They need to expose port 3000 and build a docker image from the docker file.', 'duration': 27.947, 'max_score': 17520.106, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk17520106.jpg'}, {'end': 17730.618, 'src': 'embed', 'start': 17703.128, 'weight': 7, 'content': [{'end': 17706.469, 'text': "okay, it's not compulsory that it should be the same all the time.", 'start': 17703.128, 'duration': 3.341}, {'end': 17711.851, 'text': 'we can have 8000 over here and 3000 over here, and all we need to do is map it in the command.', 'start': 17706.469, 'duration': 5.382}, {'end': 17713.692, 'text': 'but over here is the same.', 'start': 17711.851, 'duration': 1.841}, {'end': 17715.053, 'text': 'so docker run.', 'start': 17713.692, 'duration': 1.361}, {'end': 17716.788, 'text': 'so it.', 'start': 17716.187, 'duration': 0.601}, {'end': 17720.891, 'text': "what basically would do is i'll show you when the command runs.", 'start': 17716.788, 'duration': 4.103}, {'end': 17730.618, 'text': 'so this first 3000 is the port number we listed in the docker file, the port exposed by docker, and the second one is what our app is using.', 'start': 17720.891, 'duration': 9.727}], 'summary': "Docker can map ports, e.g., 8000 to 3000, using 'docker run' command.", 'duration': 27.49, 'max_score': 17703.128, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk17703128.jpg'}, {'end': 17971.9, 'src': 'embed', 'start': 17942.684, 'weight': 5, 'content': [{'end': 17948.169, 'text': "Then we'll talk about CRUD operation and at last we'll start building our application which is contact list mean app.", 'start': 17942.684, 'duration': 5.485}, {'end': 17953.293, 'text': "So let us start with very first topic of today's session which is what is a mean application.", 'start': 17949.57, 'duration': 3.723}, {'end': 17959.448, 'text': 'Meanstack refers to a collection of JavaScript based technologies used to develop web application.', 'start': 17954.904, 'duration': 4.544}, {'end': 17964.473, 'text': 'So from client to server to database everything will be based on JavaScript.', 'start': 17960.049, 'duration': 4.424}, {'end': 17971.9, 'text': 'If you see the diagram which shows a simple client server architecture that will be following in our main application.', 'start': 17965.714, 'duration': 6.186}], 'summary': "Today's session covers mean stack for javascript-based web application development.", 'duration': 29.216, 'max_score': 17942.684, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk17942684.jpg'}], 'start': 16453.241, 'title': 'Docker and mean stack', 'summary': 'Covers setting up crud operations with mongodb and node.js, introducing docker as a containerization platform for node.js, running a node.js app in docker, using docker run command with port exposing, and building a mean stack application with mongodb, express, angular 2, and node.js.', 'chapters': [{'end': 16545.511, 'start': 16453.241, 'title': 'Setting up crud operation with mongodb', 'summary': 'Covers setting up a crud operation with mongodb and node.js using mongoose to enforce a schema, highlighting the importance of schema to avoid issues like receiving blank or undefined values and providing an example of creating a restful api.', 'duration': 92.27, 'highlights': ['The importance of using mongoose to enforce a schema is emphasized to avoid issues like receiving blank or undefined values, as demonstrated by the example of using different keys for the same field, highlighting the potential problems that can arise without schema validation.', 'The chapter provides an example of creating a RESTful API by using the post method to respond with a success message, indicating how the code can be treated as a RESTful API instead of simply redirecting the record to a different URL.', 'The process of using mongoose to create a schema for MongoDB data connections is recommended as a best practice to avoid issues and ensure data consistency.']}, {'end': 16945.083, 'start': 16546.262, 'title': 'Introduction to docker with node.js', 'summary': 'Introduces docker as a containerization platform, its benefits, and differences from virtualization, emphasizing its usage with node.js and the agenda for the session.', 'duration': 398.821, 'highlights': ['Docker is a containerization platform used for packaging applications and their dependencies, ensuring smooth functioning irrespective of environment changes. Docker enables packaging applications and their dependencies within a container, ensuring seamless operation regardless of environmental changes.', "Docker simplifies creating, deploying, and running applications using containers, addressing the common issue of 'it works on my machine' in different development environments. Docker simplifies creating, deploying, and running applications using containers, addressing the common issue of discrepancies between local and server configurations.", 'Docker provides a tool to deploy applications while maintaining consistent configurations and settings across local and server environments, alleviating the headache of configuration discrepancies. Docker facilitates deploying applications while ensuring consistent configurations and settings across local and server environments, reducing the complexity of managing configuration discrepancies.', 'Docker utilizes operating system level virtualization, offering isolated environments for applications without the heavy resource requirements of machine-level virtualization. Docker uses operating system level virtualization, providing isolated environments for applications without the resource-intensive nature of machine-level virtualization.', 'The key components of Docker include the Docker file, which contains commands for Docker, Docker images, and Docker containers where application execution occurs. The key components of Docker include the Docker file with commands, Docker images serving as read-only files, and Docker containers for application execution.']}, {'end': 17627.826, 'start': 16945.863, 'title': 'Running node.js app in docker', 'summary': 'Details the process of running a node.js app in docker, including the prerequisites such as enabling virtualization on windows, setting up docker toolbox for windows 8, the benefits of using node.js with docker, creating and dockerizing a simple node.js app, and building and running the docker image.', 'duration': 681.963, 'highlights': ['The benefits of using Node.js with Docker include speeding up the application deployment process, increasing application portability, simplifying the version control process, promoting component reuse, having a light footprint, and putting less overhead on the app. Node.js with Docker speeds up the application deployment process, increases application portability, simplifies the version control process, promotes component reuse, has a light footprint, and puts less overhead on the app.', 'The process of creating and dockerizing a simple Node.js app involves initializing an empty project, installing Express, creating a simple hello world application, and starting the http server to listen on a particular port. Creating and dockerizing a simple Node.js app involves initializing an empty project, installing Express, creating a simple hello world application, and starting the http server to listen on a particular port.', 'The steps for building and running the Docker image include creating a Docker file, specifying the base image with the desired version, creating a working directory for Docker, copying the package.json, running npm install, copying everything to the app folder, and exposing a port number. Building and running the Docker image includes creating a Docker file, specifying the base image with the desired version, creating a working directory for Docker, copying the package.json, running npm install, copying everything to the app folder, and exposing a port number.', 'Prerequisites for running Docker on Windows include enabling virtualization, using Docker Desktop for Windows 10, and using Docker Toolbox for Windows 8. Prerequisites for running Docker on Windows include enabling virtualization, using Docker Desktop for Windows 10, and using Docker Toolbox for Windows 8.']}, {'end': 17892.582, 'start': 17627.826, 'title': 'Docker run command and port exposing', 'summary': "Covers the usage of the 'docker run' command with options like interactive mode and port exposing, demonstrating the process of running a docker image and mapping ports, with a specific example of exposing port 888 for a docker container running an app on port 3000.", 'duration': 264.756, 'highlights': ["The 'docker run' command can be used with options like interactive mode (-i) and port exposing (-p) to run Docker images, as demonstrated in the process of exposing port 888 for a Docker container running an app on port 3000.", "The process involves mapping the port exposed by Docker (888) to the port used by the app inside the Docker container (3000), and the use of the interactive mode (-i) allows interaction with the Docker container's console.", 'The example illustrates the scenario of encountering an error when attempting to run a Docker image due to a port already being allocated, leading to the need to rebuild the image and choose a different port for exposing.']}, {'end': 18162.752, 'start': 17892.582, 'title': 'Building a mean stack application', 'summary': 'Covers the process of creating a mean stack application, including the technologies involved (mongodb, express, angular 2, and node.js), the architecture, and the functionalities of each technology, as well as crud operations to be performed on the database.', 'duration': 270.17, 'highlights': ['MEAN Stack Architecture The MEAN stack architecture includes MongoDB for the database, Express for server-side development, Angular 2 for client-side development, and Node.js for server-side JavaScript execution, creating a unified JavaScript-based environment for web applications.', 'Node.js Event-Driven Architecture Node.js operates on an event-driven architecture, enabling asynchronous processing of events, making the server highly optimized and scalable, allowing it to serve multiple requests simultaneously.', 'CRUD Operations The chapter outlines CRUD operations (create, read, update, delete) to be performed on the database, utilizing methods such as POST for insertion, GET for retrieval, PUT for modification, and DELETE for deletion of data.']}], 'duration': 1709.511, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk16453241.jpg', 'highlights': ['Node.js with Docker speeds up the application deployment process, increases application portability, simplifies the version control process, promotes component reuse, has a light footprint, and puts less overhead on the app.', 'Docker simplifies creating, deploying, and running applications using containers, addressing the common issue of discrepancies between local and server configurations.', 'The importance of using mongoose to enforce a schema is emphasized to avoid issues like receiving blank or undefined values, as demonstrated by the example of using different keys for the same field, highlighting the potential problems that can arise without schema validation.', 'The process of using mongoose to create a schema for MongoDB data connections is recommended as a best practice to avoid issues and ensure data consistency.', "The 'docker run' command can be used with options like interactive mode (-i) and port exposing (-p) to run Docker images, as demonstrated in the process of exposing port 888 for a Docker container running an app on port 3000.", 'MEAN Stack Architecture The MEAN stack architecture includes MongoDB for the database, Express for server-side development, Angular 2 for client-side development, and Node.js for server-side JavaScript execution, creating a unified JavaScript-based environment for web applications.', 'Node.js Event-Driven Architecture Node.js operates on an event-driven architecture, enabling asynchronous processing of events, making the server highly optimized and scalable, allowing it to serve multiple requests simultaneously.', 'CRUD Operations The chapter outlines CRUD operations (create, read, update, delete) to be performed on the database, utilizing methods such as POST for insertion, GET for retrieval, PUT for modification, and DELETE for deletion of data.']}, {'end': 20481.033, 'segs': [{'end': 18444.358, 'src': 'embed', 'start': 18415.373, 'weight': 2, 'content': [{'end': 18419.776, 'text': 'We have already completed this very step that is installed MongoDB Community Edition.', 'start': 18415.373, 'duration': 4.403}, {'end': 18422.658, 'text': 'Now we need to run this MongoDB service.', 'start': 18419.876, 'duration': 2.782}, {'end': 18430.054, 'text': 'So for that we need to create two directories called as data one subdirectory steamy.', 'start': 18423.778, 'duration': 6.276}, {'end': 18432.535, 'text': "So let's go ahead and do that.", 'start': 18431.495, 'duration': 1.04}, {'end': 18434.736, 'text': "We'll open command prompt.", 'start': 18433.475, 'duration': 1.261}, {'end': 18442.718, 'text': 'Let me delete the data file because I had MongoDB already installed in my system.', 'start': 18436.936, 'duration': 5.782}, {'end': 18444.358, 'text': "I'm gonna delete it.", 'start': 18442.738, 'duration': 1.62}], 'summary': 'Installed mongodb community edition, created two directories, and deleted data file.', 'duration': 28.985, 'max_score': 18415.373, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk18415373.jpg'}, {'end': 20280.739, 'src': 'embed', 'start': 20100.684, 'weight': 0, 'content': [{'end': 20106.066, 'text': 'now we want to insert this very new contact into our database.', 'start': 20100.684, 'duration': 5.382}, {'end': 20119.725, 'text': "so for that We're gonna use a new contact.save, and we need a callback.", 'start': 20106.066, 'duration': 13.659}, {'end': 20127.407, 'text': "Let's go ahead with the arrow function.", 'start': 20125.567, 'duration': 1.84}, {'end': 20136.35, 'text': 'Error If error.', 'start': 20128.768, 'duration': 7.582}, {'end': 20176.687, 'text': "we need to send or we want to send message fail to add contact else contact That's it guys.", 'start': 20140.185, 'duration': 36.502}, {'end': 20182.67, 'text': 'Now for delete.', 'start': 20180.569, 'duration': 2.101}, {'end': 20194.274, 'text': "what I'm trying to show you is that if you're inserting any data into your database what our MongoDB does it creates an ID for each document or each contact.", 'start': 20182.67, 'duration': 11.604}, {'end': 20203.598, 'text': "So using that very particular ID, we're gonna refer to that particular contact which we want to delete and we'll perform our delete operation.", 'start': 20195.214, 'duration': 8.384}, {'end': 20205.579, 'text': "So that's how we want to do things.", 'start': 20204.079, 'duration': 1.5}, {'end': 20212.763, 'text': "So from client side, we'll be receiving that very particular request for deleting a particular contact.", 'start': 20206.1, 'duration': 6.663}, {'end': 20217.485, 'text': "Then using that very ID, we're gonna issue our delete command.", 'start': 20213.363, 'duration': 4.122}, {'end': 20222.548, 'text': 'So contact.remove.', 'start': 20218.266, 'duration': 4.282}, {'end': 20231.101, 'text': 'Now, as I said, we need to retrieve the ID.', 'start': 20226.658, 'duration': 4.443}, {'end': 20242.089, 'text': 'This ID, and then a callback.', 'start': 20239.847, 'duration': 2.242}, {'end': 20253.237, 'text': 'F error.', 'start': 20252.796, 'duration': 0.441}, {'end': 20271.835, 'text': "That's it guys.", 'start': 20271.114, 'duration': 0.721}, {'end': 20278.558, 'text': 'So our delete method has been added to our route file successfully.', 'start': 20272.215, 'duration': 6.343}, {'end': 20280.739, 'text': 'So we have three methods now.', 'start': 20279.338, 'duration': 1.401}], 'summary': 'Insert, retrieve, and delete contacts with new methods in route file.', 'duration': 180.055, 'max_score': 20100.684, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk20100684.jpg'}], 'start': 18163.524, 'title': 'Implementing restful apis with node.js and mongodb', 'summary': 'Covers installing node.js and mongodb, setting up a node.js project with dependencies, configuring express server and database connection, and creating apis for contacts, emphasizing installation and setup processes on windows and the functionality of the apis.', 'chapters': [{'end': 18280.497, 'start': 18163.524, 'title': 'Implementing restful apis with node.js and mongodb', 'summary': 'Covers the process of installing node.js and mongodb locally, utilizing restful apis for building the application, and utilizing the node.js command prompt to manage dependencies.', 'duration': 116.973, 'highlights': ['The process involves installing Node.js and MongoDB locally, which is described as pretty easy and involves going through setup and clicking next buttons.', 'The chapter emphasizes utilizing restful APIs for implementing four functionalities while building the application.', 'The node.js command prompt is utilized to manage dependencies and their versions, with the npm version being checked as part of the process.']}, {'end': 18518.504, 'start': 18281.488, 'title': 'Installing mongodb on windows', 'summary': 'Discusses the installation of mongodb on a windows system, covering the download process, installation steps, and the configuration of the mongodb service, with an emphasis on specifying the path, creating directories, and starting the service on port 27017.', 'duration': 237.016, 'highlights': ['The installation process involves downloading a 148 MB MSI file from mongodb.com, specifying the installation path, and completing the installation, with the MongoDB files being installed in the program files.', "The chapter details the steps to run the MongoDB service, including creating two directories called 'data' and 'db', specifying the path for the database data, and starting the service on the default port 27017.", "The process also mentions the alternative step of executing 'mongod.exe' if the previous step does not work, and emphasizes the readiness to create a project using node.js after completing the MongoDB setup."]}, {'end': 18746.669, 'start': 18518.584, 'title': 'Setting up a node.js project', 'summary': 'Covers setting up a node.js project by creating a project directory, using npm init to build the project and create a package.json file with dependencies, and installing multiple dependencies such as express, mongoose, body parser, and cores, to enable server and client-side code execution.', 'duration': 228.085, 'highlights': ['Creating a project directory and using npm init to build the project and create a package.json file with dependencies Setting up the project directory and using npm init to create a package.json file with dependencies.', 'Installing Express using npm install command with --save flag to write dependencies to package.json file Installing Express and writing the dependency to the package.json file using npm install command with --save flag.', 'Explaining the purpose of sharing only the source code and package.json file to share the project with colleagues Emphasizing the convenience of sharing only the source code and package.json file for colleagues to download dependencies and start working with the project.', 'Installing multiple dependencies such as mongoose, body parser, and cores for server and client-side code execution Installing multiple dependencies like mongoose, body parser, and cores for server and client-side code execution.']}, {'end': 19948.294, 'start': 18749.411, 'title': 'Setting up express server and database connection', 'summary': 'Covers setting up an express server in app.js, importing necessary modules like express, mongoose, body parser, cors, and path, defining port number and binding the server, creating routes, adding middleware for parsing data and using cors, and creating schema and connecting to mongodb.', 'duration': 1198.883, 'highlights': ["Creating routes in a separate file called route.js or something like that, so that all our routes are in a particular file and it's not in our app.js file. Emphasizes the practice of organizing routes in a separate file for better code management and clarity.", 'Defining route for the home page using the get method and specifying the server response for the home page route. Demonstrates the process of defining a route for the home page using the get method and specifying the server response for that route.', "Making a call to '/ API / add contact' for adding contacts and defining the logic for adding contacts in the route.js file. Explains the process of making a call to '/ API / add contact' for adding contacts and defining the logic for adding contacts in the route.js file.", 'Creating a schema for the contact to be inserted into the MongoDB database, including fields for first name, last name, and contact number. Details the process of creating a schema for the contact to be inserted into the MongoDB database, including the fields for first name, last name, and contact number.', 'Connecting to MongoDB using mongoose.connect function and displaying a success message on successful connection and an error message on connection error. Explains the process of connecting to MongoDB using mongoose.connect function and displaying success and error messages accordingly.']}, {'end': 20481.033, 'start': 19948.294, 'title': 'Creating apis for contacts', 'summary': "Discusses the process of creating apis for retrieving, adding, and deleting contacts, including using the find method for retrieving, creating a new contact, and deleting a contact using the contact's unique id. the chapter also mentions using postman to check the apis.", 'duration': 532.739, 'highlights': ["The process of creating APIs for retrieving, adding, and deleting contacts is discussed, including using the find method for retrieving, creating a new contact, and deleting a contact using the contact's unique ID.", 'The chapter also mentions using Postman, a Chrome extension, to check the APIs.', "The method for deleting a contact using the contact's unique ID is explained, emphasizing the use of the unique ID generated by MongoDB for each contact."]}], 'duration': 2317.509, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk18163524.jpg', 'highlights': ['Installing Node.js and MongoDB locally is described as pretty easy and involves going through setup and clicking next buttons', 'Emphasizing the utilization of restful APIs for implementing four functionalities while building the application', "Creating APIs for retrieving, adding, and deleting contacts is discussed, including using the find method for retrieving, creating a new contact, and deleting a contact using the contact's unique ID", 'The installation process involves downloading a 148 MB MSI file from mongodb.com, specifying the installation path, and completing the installation, with the MongoDB files being installed in the program files', 'Creating a project directory and using npm init to build the project and create a package.json file with dependencies Setting up the project directory and using npm init to create a package.json file with dependencies']}, {'end': 22546.607, 'segs': [{'end': 20777.858, 'src': 'embed', 'start': 20746.178, 'weight': 3, 'content': [{'end': 20750.43, 'text': "So here you can see that it's a TypeScript class called app component.", 'start': 20746.178, 'duration': 4.252}, {'end': 20759.213, 'text': 'Now we have something called as decorator at the rate, component decorator, which tells Angular that this very class is a component,', 'start': 20750.69, 'duration': 8.523}, {'end': 20767.575, 'text': 'and we have template URL over here, which specify the template for our component, which is over here, and then we have CSS for styling.', 'start': 20759.213, 'duration': 8.362}, {'end': 20770.576, 'text': "So let's run this very particular application.", 'start': 20768.275, 'duration': 2.301}, {'end': 20777.858, 'text': 'So npm start is the command or you can go ahead with ng serve.', 'start': 20773.157, 'duration': 4.701}], 'summary': 'Transcript explains typescript class app component with angular decorator and commands for running.', 'duration': 31.68, 'max_score': 20746.178, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk20746178.jpg'}, {'end': 21753.199, 'src': 'embed', 'start': 21714.399, 'weight': 1, 'content': [{'end': 21717.621, 'text': "So I'll go ahead with something superhero.", 'start': 21714.399, 'duration': 3.222}, {'end': 21726.474, 'text': 'So you can go ahead and click the download and copy this very thing and put it into your HTML or index.html file.', 'start': 21717.661, 'duration': 8.813}, {'end': 21735.421, 'text': "So we'll go there, we'll copy this very thing and paste it here,", 'start': 21726.514, 'duration': 8.907}, {'end': 21748.472, 'text': "and then we need to write stylesheet and we'll remove this very particular field and we'll copy it here in our href so that it can refer to it.", 'start': 21735.421, 'duration': 13.051}, {'end': 21753.199, 'text': "So it's done.", 'start': 21752.699, 'duration': 0.5}], 'summary': 'Instructions for adding superhero theme to html file completed.', 'duration': 38.8, 'max_score': 21714.399, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk21714399.jpg'}, {'end': 21828.528, 'src': 'embed', 'start': 21785.196, 'weight': 0, 'content': [{'end': 21797.04, 'text': 'So each contact in our contacts array will be retrieved in this very particular variable and that very variable will be displaying as a list.', 'start': 21785.196, 'duration': 11.844}, {'end': 21801.542, 'text': "Let's go ahead and do that.", 'start': 21800.421, 'duration': 1.121}, {'end': 21804.723, 'text': 'So we need our dev class.', 'start': 21802.022, 'duration': 2.701}, {'end': 21818.119, 'text': 'Again a div, closing div tag.', 'start': 21815.817, 'duration': 2.302}, {'end': 21828.528, 'text': 'So now again we will be using that very interpolation or one way data binding to display our contact dot first name.', 'start': 21818.88, 'duration': 9.648}], 'summary': 'Retrieve contacts and display as a list using one-way data binding.', 'duration': 43.332, 'max_score': 21785.196, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk21785196.jpg'}, {'end': 22037.822, 'src': 'embed', 'start': 22001.058, 'weight': 6, 'content': [{'end': 22008.9, 'text': 'Now what we need to do is, even if we have deleted the data or the contact from our backend side or from my database,', 'start': 22001.058, 'duration': 7.842}, {'end': 22011.781, 'text': 'I need to remove it from my contact area as well.', 'start': 22008.9, 'duration': 2.881}, {'end': 22016.782, 'text': 'This very particular contact where all the contact has been saved.', 'start': 22012.021, 'duration': 4.761}, {'end': 22019.223, 'text': "So we'll go ahead and do that.", 'start': 22017.422, 'duration': 1.801}, {'end': 22034.142, 'text': "If the delete operation was successful, then We're gonna iterate over, yeah.", 'start': 22025.504, 'duration': 8.638}, {'end': 22037.822, 'text': 'Contacts dot length.', 'start': 22035.882, 'duration': 1.94}], 'summary': 'Ensure data deletion from both backend and contact area.', 'duration': 36.764, 'max_score': 22001.058, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk22001058.jpg'}, {'end': 22140.281, 'src': 'embed', 'start': 22095.154, 'weight': 5, 'content': [{'end': 22099.836, 'text': 'Now we need to add our new method for our adding contact.', 'start': 22095.154, 'duration': 4.682}, {'end': 22110.922, 'text': 'So our delete functionality is done.', 'start': 22109.101, 'duration': 1.821}, {'end': 22118.786, 'text': "So let's add our add contact method so that we can add more contact and delete them and see if everything is working fine or not.", 'start': 22110.982, 'duration': 7.804}, {'end': 22123.068, 'text': "So for that I'll be using add contact.", 'start': 22119.286, 'duration': 3.782}, {'end': 22126.67, 'text': 'and this.', 'start': 22124.688, 'duration': 1.982}, {'end': 22129.132, 'text': "I'll be creating new contact.", 'start': 22127.29, 'duration': 1.842}, {'end': 22140.281, 'text': 'Here I need first name to be this dot first name.', 'start': 22134.577, 'duration': 5.704}], 'summary': 'Developing new method for adding contacts, completing delete functionality, and testing contact addition and deletion.', 'duration': 45.127, 'max_score': 22095.154, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk22095154.jpg'}], 'start': 20481.033, 'title': 'Client-side application development with angular 2', 'summary': 'Discusses the completion of server-side code and the beginning of client-side application development using angular 2, including the installation of angular cli, creation of an angular project, application structure, creating contacts component and service, dependency injection, service utilization, contact service implementation, angular component iteration, and angular contact form & ui loading.', 'chapters': [{'end': 20692.102, 'start': 20481.033, 'title': 'Client-side application development with angular 2', 'summary': 'Discusses the completion of server-side code and the beginning of client-side application development using angular 2, including the installation of angular cli and the creation of an angular project.', 'duration': 211.069, 'highlights': ['The completion of server-side code operations is mentioned as the first step before moving on to client-side application development with Angular 2.', 'The installation of Angular CLI is described, including the use of npm install command and the purpose of Angular CLI in providing necessary boilerplate and code modules.', "The creation of an Angular project using 'ng new' command is explained, along with the generation of basic components and files such as app.component, app.module, index.html, and package.json."]}, {'end': 20877.755, 'start': 20692.803, 'title': 'Angular 2 application structure', 'summary': 'Covers the structure of an angular 2 application, including the creation of components, the use of typescript as the language, and the live-reloading feature for continuous application updates.', 'duration': 184.952, 'highlights': ['The chapter explains the structure of an Angular 2 application, including the creation of components and the use of TypeScript as the language.', 'It details the use of TypeScript as the language for building an Angular 2 application, based on object-oriented features.', 'The live-reloading feature is highlighted, emphasizing that the application continuously watches for changes in the source code and automatically re-renders or restarts the application.']}, {'end': 21385.885, 'start': 20878.635, 'title': 'Creating contacts component and service', 'summary': 'Covers creating a contacts component and service, including using ng-generate to generate a component and service, separating business logic into a service, defining a contact schema with four fields, and creating methods for retrieving, adding, and deleting contacts using http methods and api calls.', 'duration': 507.25, 'highlights': ['Using ng-generate to generate a component and service The chapter discusses using ng-generate to generate a component and service for creating a contacts component and service.', "Separating business logic into a service It's considered good practice to separate business logic into a service to handle data retrieving and data operation logic, which is then injected into the component where necessary.", 'Defining a contact schema with four fields A contact schema is defined with four fields: ID (string), first name (string), last name (string), and form (optional field).', 'Creating methods for retrieving, adding, and deleting contacts using HTTP methods and API calls Methods for retrieving, adding, and deleting contacts are created using HTTP methods and API calls, including defining the API URL and using ReactiveJS operators like map.']}, {'end': 21555.921, 'start': 21402.233, 'title': 'Dependency injection and service utilization', 'summary': 'Explains the process of injecting services into a component, initializing the contact service using dependency injection, and retrieving data inside the ngoninit method to automatically load the component and retrieve data.', 'duration': 153.688, 'highlights': ['The process of injecting services into our component is called dependency injection, allowing us to use the methods defined in the service class.', 'Initializing the contact service using the private contact service of type contact service class is a crucial step in utilizing the service methods.', 'The ngOnInit method is used to retrieve data, and it is automatically called every time the component is loaded into the browser.']}, {'end': 21753.199, 'start': 21556.941, 'title': 'Contact service implementation', 'summary': 'Covers implementing a contact service using the getcontact method, creating variables for contacts, first name, last name, and phone number, specifying the bootstrap component, and incorporating a boot swatch style sheet into the template.', 'duration': 196.258, 'highlights': ['Implementing a contact service using the getContact method The chapter focuses on using the getContact method as part of the contact service implementation.', 'Creating variables for contacts, first name, last name, and phone number The chapter covers the creation of variables for contacts, first name, last name, and phone number.', 'Specifying the bootstrap component and incorporating a boot swatch style sheet into the template The chapter explains the process of specifying the bootstrap component and integrating a boot swatch style sheet into the template.']}, {'end': 22226.227, 'start': 21755.121, 'title': 'Angular component iteration', 'summary': 'Demonstrates the iteration over a list of contacts in an angular component, including the use of structural directives like ng4, one-way data binding, and the addition and deletion of contacts, with a focus on implementing the delete functionality and adding new contacts.', 'duration': 471.106, 'highlights': ['Demonstrating iteration over a list of contacts using ng4 structural directive and one-way data binding to display contact details. The component iterates over a list of contacts using ng4 structural directive and one-way data binding to display contact details such as first name, last name, and phone number.', 'Implementing the delete functionality for contacts, including calling the service to delete contacts and updating the display accordingly. The chapter demonstrates the process of deleting contacts, including calling the service to delete contacts and updating the display by removing the deleted contact from the list.', 'Adding new contacts using the add contact method, pushing the new contact into the array, and addressing errors encountered during the process. The chapter covers the addition of new contacts using the add contact method, pushing the new contact into the array, and addressing errors encountered during the process.']}, {'end': 22546.607, 'start': 22226.708, 'title': 'Angular contact form & ui loading', 'summary': 'Explains how to create an angular contact form with three fields for name, last name, and phone number, and highlights the issue of ui loading when retrieving and displaying contacts.', 'duration': 319.899, 'highlights': ['The chapter explains how to create an Angular contact form with three fields for name, last name, and phone number.', 'It mentions the use of ngModel for two-way data binding to reflect changes in the contact list.', 'It discusses the issue of UI loading when retrieving and displaying contacts, due to the browser not allowing blocking of the UI during these operations.']}], 'duration': 2065.574, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk20481033.jpg', 'highlights': ['The completion of server-side code operations is mentioned as the first step before moving on to client-side application development with Angular 2.', 'The creation of methods for retrieving, adding, and deleting contacts using HTTP methods and API calls, including defining the API URL and using ReactiveJS operators like map.', 'Demonstrating iteration over a list of contacts using ng4 structural directive and one-way data binding to display contact details.', 'The process of injecting services into our component is called dependency injection, allowing us to use the methods defined in the service class.', 'Creating variables for contacts, first name, last name, and phone number.', 'The chapter explains how to create an Angular contact form with three fields for name, last name, and phone number.', 'The installation of Angular CLI is described, including the use of npm install command and the purpose of Angular CLI in providing necessary boilerplate and code modules.']}, {'end': 23793.76, 'segs': [{'end': 22704.415, 'src': 'embed', 'start': 22680.168, 'weight': 3, 'content': [{'end': 22691.772, 'text': 'Welcome to Edureka webinar on node.js interview questions and I will walk you through all the questions which will help you to crack the interview related to node.js.', 'start': 22680.168, 'duration': 11.604}, {'end': 22699.134, 'text': "So let's get started the very basic question the question number one differentiate between JavaScript and node.js.", 'start': 22692.212, 'duration': 6.922}, {'end': 22704.415, 'text': 'So we should understand what is the difference between JavaScript and node.js.', 'start': 22699.874, 'duration': 4.541}], 'summary': 'Edureka webinar on node.js interview questions covers differentiation between javascript and node.js.', 'duration': 24.247, 'max_score': 22680.168, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk22680168.jpg'}, {'end': 23237.796, 'src': 'embed', 'start': 23213.196, 'weight': 1, 'content': [{'end': 23220.223, 'text': 'It can be used in network related applications in distributed systems and obviously in general purpose application.', 'start': 23213.196, 'duration': 7.027}, {'end': 23223.988, 'text': 'So there are multiple benefits of using node.js.', 'start': 23220.263, 'duration': 3.725}, {'end': 23228.595, 'text': 'Now, how many types of API functions are there in node.js?', 'start': 23225.094, 'duration': 3.501}, {'end': 23237.796, 'text': 'So, basically, there are two types of API functions in node.js, when we say as asynchronous, which is non-blocking functions, and one is synchronous,', 'start': 23228.935, 'duration': 8.861}], 'summary': 'Node.js has two types of api functions, asynchronous and synchronous, with multiple benefits for distributed and general purpose applications.', 'duration': 24.6, 'max_score': 23213.196, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk23213196.jpg'}, {'end': 23724.21, 'src': 'embed', 'start': 23696.703, 'weight': 0, 'content': [{'end': 23702.429, 'text': 'when I say integration test, integration test the integration between the different units,', 'start': 23696.703, 'duration': 5.726}, {'end': 23709.034, 'text': 'for example the interaction between one module and its dependencies, so that we see as integration test.', 'start': 23702.429, 'duration': 6.605}, {'end': 23710.816, 'text': 'last is e2e test.', 'start': 23709.034, 'duration': 1.782}, {'end': 23712.277, 'text': 'e2e means end-to-end test.', 'start': 23710.816, 'duration': 1.461}, {'end': 23720.445, 'text': 'We test the system as a whole means complete system will be tested from the UI to the data store and probably back.', 'start': 23712.718, 'duration': 7.727}, {'end': 23724.21, 'text': 'What is the concept of an integration test is very flexible.', 'start': 23721.146, 'duration': 3.064}], 'summary': 'Integration tests check interaction between units, while e2e tests assess the complete system from ui to data store.', 'duration': 27.507, 'max_score': 23696.703, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk23696703.jpg'}], 'start': 22546.667, 'title': 'Node.js and angular application development', 'summary': 'Discusses creating an angular app with express and mongodb, server-side coding, middleware usage, crud operations, and node.js fundamentals such as package.json, event-driven programming, event loop, asynchronous tasks, and error first callbacks.', 'chapters': [{'end': 22674.668, 'start': 22546.667, 'title': 'Angular application development', 'summary': 'Discusses the process of creating an angular application with express and mongodb, including server-side coding, middleware usage, crud operations, and component and service creation.', 'duration': 128.001, 'highlights': ['The chapter covers the process of creating an Angular application with Express and MongoDB, including server-side coding, middleware usage, CRUD operations, and component and service creation.', 'The speaker explains the steps involved in server-side coding, including importing required models, applying middleware for cores and body parser, and creating separate routes for CRUD operations.', 'The importance of creating schema for the database for contact, specifying fields such as first name, last name, and phone, is highlighted as a crucial step in the application development process.', 'The creation of components and services, along with the injection of services into the components for data operation logic, is emphasized as an essential part of the Angular application development process.']}, {'end': 22947.979, 'start': 22680.168, 'title': 'Node.js interview questions', 'summary': 'Covers the differences between javascript and node.js, the definition and features of node.js, and the major benefits of using node.js, including its open-source and cross-platform nature, asynchronous programming, and usage of v8 engine for impressive speed.', 'duration': 267.811, 'highlights': ['Node.js uses JavaScript for asynchronous programming and can run on various platforms such as Windows, Linux, Unix, and Mac OS, making it highly scalable and free to use.', 'The v8 engine used in node.js implementation, originally developed for the Chrome browser, is written in C++ and compiles JavaScript functions into machine code at an impressive speed with no buffering.', 'Node.js can generate dynamic page content, perform file operations, handle form data, and manipulate database data, making it suitable for creating server-side web applications and data-intensive real-time applications.', 'JavaScript is a programming language used for client-side activities in web applications, while node.js serves as an interpreter and environment for JavaScript, enabling non-blocking operations on any operating system.']}, {'end': 23300.21, 'start': 22948.059, 'title': 'Angular vs node.js', 'summary': 'Provides a comparison between angular and node.js, highlighting differences such as their use cases, programming languages, and ideal applications, and also explains the single-threaded model of node.js and its use cases. it also covers the types of api functions in node.js and the differences between asynchronous and non-blocking functions.', 'duration': 352.151, 'highlights': ['Node.js supports asynchronous programming and uses a single-threaded model, allowing for better performance and scalability under web loads. Node.js uses a single-threaded model to execute asynchronous code, enabling better performance and scalability under web loads.', 'Angular is ideal for creating highly active and interactive web applications, while Node.js is suitable for situations requiring something faster and more scalable. Angular is suitable for highly active and interactive web applications, whereas Node.js is suitable for situations requiring faster and more scalable solutions.', 'Node.js is a cross-platform runtime environment written in C, C++, and JavaScript, used for building server-side networking applications, hardware interactions, and input-output functionalities. Node.js is a cross-platform runtime environment written in C, C++, and JavaScript, used for building server-side networking applications, hardware interactions, and input-output functionalities.']}, {'end': 23793.76, 'start': 23300.85, 'title': 'Understanding node.js fundamentals', 'summary': 'Covers key concepts of node.js including package.json, event-driven programming, event loop, r.e.p.l, asynchronous tasks, control flow, test pyramid, and error first callbacks in node.js, highlighting their importance and functionality.', 'duration': 492.91, 'highlights': ['Package.json: The Heart of Node.js Projects Package.json serves as the introduction and manifest file for a node.js project, containing metadata like author, description, version, scripts, dependencies, and dev dependencies.', 'Event-Driven Programming and Node.js Efficiency Node.js utilizes event-driven programming, following the publish and subscribe pattern, heavily using events for triggering functions, contributing to its fast performance compared to similar technologies.', 'Event Loop in Node.js: Non-Blocking I/O Operations The event loop enables non-blocking I/O operations in node.js by handling asynchronous callbacks and offloading operations to the system kernel, enhancing its efficiency.', 'R.E.P.L in Node.js: Read, Evaluate, Print, Loop R.E.P.L, also known as node shell, allows quick testing of JavaScript or node.js code by reading user input, evaluating it, printing the results, and looping the provided command until control+C is pressed twice.', 'Asynchronous Tasks and Control Flow in Node.js Tasks such as input/output operations, heavy computations, and blocking operations should be done asynchronously using the event loop, and control flow controls the function calls by managing the order of execution, data collection, limiting concurrency, and invoking the next function.', 'Understanding Test Pyramid in Node.js The test pyramid comprises unit tests (testing individual units of code), integration tests (testing the interaction between different units), and end-to-end tests (testing the complete system from UI to data store and back), providing flexibility based on the application and testing paradigm.', 'Error First Callback in Node.js Error first callback in node.js follows the rule that the first argument of the callback is reserved for an error object, and the second argument is for successful response data, ensuring structured error handling and data retrieval in callback functions.']}], 'duration': 1247.093, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk22546667.jpg', 'highlights': ['Creating an Angular app with Express and MongoDB, server-side coding, middleware usage, CRUD operations, and component and service creation', 'Node.js uses JavaScript for asynchronous programming and can run on various platforms, making it highly scalable and free to use', 'Node.js supports asynchronous programming and uses a single-threaded model, allowing for better performance and scalability under web loads', 'Package.json serves as the introduction and manifest file for a node.js project, containing metadata like author, description, version, scripts, dependencies, and dev dependencies', 'Event-Driven Programming and Node.js Efficiency: Node.js utilizes event-driven programming, following the publish and subscribe pattern, heavily using events for triggering functions, contributing to its fast performance compared to similar technologies']}, {'end': 25352.229, 'segs': [{'end': 24539.284, 'src': 'embed', 'start': 24508.616, 'weight': 9, 'content': [{'end': 24511.097, 'text': 'now, how is it works in node.js?', 'start': 24508.616, 'duration': 2.481}, {'end': 24514.678, 'text': 'again a very important question how, as it works in node.js.', 'start': 24511.097, 'duration': 3.581}, {'end': 24522.451, 'text': 'So as it is mainly used to write test it only provides feedback only any of the running test cases fails.', 'start': 24515.358, 'duration': 7.093}, {'end': 24532.339, 'text': 'So whenever you do testing where we talked about the pyramid of the testing which includes the unit test the integration test and the end-to-end test.', 'start': 24523.211, 'duration': 9.128}, {'end': 24539.284, 'text': 'So assert is mainly used to write the test and it provides the feedback whenever any test case fails,', 'start': 24532.819, 'duration': 6.465}], 'summary': 'Node.js assert is used to write tests and provides feedback on failed test cases.', 'duration': 30.668, 'max_score': 24508.616, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk24508616.jpg'}, {'end': 24656.973, 'src': 'embed', 'start': 24608.851, 'weight': 1, 'content': [{'end': 24616.298, 'text': 'So high high level testing, or you can say end-to-end testing test cases could be a little bit small,', 'start': 24608.851, 'duration': 7.447}, {'end': 24619.902, 'text': 'but you should have a higher number of low level unit test cases.', 'start': 24616.298, 'duration': 3.604}, {'end': 24622.233, 'text': 'In terms of HTTP API.', 'start': 24620.572, 'duration': 1.661}, {'end': 24629.979, 'text': 'It can be defined as test pyramid, can be defined as a higher number of low-level unit test for each model,', 'start': 24622.633, 'duration': 7.346}, {'end': 24638.484, 'text': 'lesser integration test to test model interactions and lesser acceptance test for testing the actual HTTP endpoint.', 'start': 24629.979, 'duration': 8.505}, {'end': 24652.451, 'text': 'So the core or heart of this test pyramid says that you should always have a higher number of low-level unit test going at a very low level of the testing for each model.', 'start': 24639.185, 'duration': 13.266}, {'end': 24656.973, 'text': 'Now, what is the purpose of Express.js package?', 'start': 24653.251, 'duration': 3.722}], 'summary': 'Emphasize more low-level unit test cases in test pyramid for http api testing.', 'duration': 48.122, 'max_score': 24608.851, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk24608851.jpg'}, {'end': 24809.157, 'src': 'embed', 'start': 24776.498, 'weight': 6, 'content': [{'end': 24781, 'text': 'next question is that what is the use of a buffer class in node.js?', 'start': 24776.498, 'duration': 4.502}, {'end': 24788.352, 'text': 'buffer class, as the name suggests that it is used for restoring the raw data, Just like we have area of integers.', 'start': 24781, 'duration': 7.352}, {'end': 24794.833, 'text': 'For example, it corresponds to a raw memory allocation that is located outside the v8 heap,', 'start': 24788.412, 'duration': 6.421}, {'end': 24800.215, 'text': 'because v8 engine is the main engine of node.js buffer class.', 'start': 24794.833, 'duration': 5.382}, {'end': 24809.157, 'text': "It's a global class that is easily accessible across all the modules in the application without importing it at each module level.", 'start': 24800.315, 'duration': 8.842}], 'summary': 'Buffer class in node.js stores raw data outside v8 heap, accessible globally.', 'duration': 32.659, 'max_score': 24776.498, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk24776498.jpg'}, {'end': 24851.183, 'src': 'embed', 'start': 24826.493, 'weight': 0, 'content': [{'end': 24834.836, 'text': 'We have already talked about that node.js is a single threaded process and does not expose the child threads or thread management methods.', 'start': 24826.493, 'duration': 8.343}, {'end': 24839.618, 'text': 'Then how does node.js handle the child threads? This is a question.', 'start': 24835.816, 'duration': 3.802}, {'end': 24847.499, 'text': 'So you can still make use of the child threads using spawn method for some specific asynchronous input output task.', 'start': 24840.251, 'duration': 7.248}, {'end': 24851.183, 'text': 'If you still want to use a threading concept in your application,', 'start': 24848.14, 'duration': 3.043}], 'summary': 'Node.js uses the spawn method for specific asynchronous input/output tasks, allowing the use of child threads.', 'duration': 24.69, 'max_score': 24826.493, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk24826493.jpg'}, {'end': 24929.74, 'src': 'embed', 'start': 24899.484, 'weight': 2, 'content': [{'end': 24908.266, 'text': 'They are the objects through which you can read the data from a source, or you can write the data to a destination in a continuous manner,', 'start': 24899.484, 'duration': 8.782}, {'end': 24915.947, 'text': 'and you can use these four types of streams, which is visible on your screen readable, writable, duplex or transform.', 'start': 24908.266, 'duration': 7.681}, {'end': 24918.09, 'text': 'Again very interesting question.', 'start': 24916.829, 'duration': 1.261}, {'end': 24920.652, 'text': 'What is the use of node underscore ENV?', 'start': 24918.19, 'duration': 2.462}, {'end': 24929.74, 'text': 'So there are some environment variables which are often used for distinguishing between environments like, for example,', 'start': 24921.333, 'duration': 8.407}], 'summary': 'Node streams allow continuous data reading/writing; node_env distinguishes environments.', 'duration': 30.256, 'max_score': 24899.484, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk24899484.jpg'}, {'end': 24971.194, 'src': 'embed', 'start': 24943.263, 'weight': 7, 'content': [{'end': 24948.145, 'text': 'What is the use of it? This will helps in taking better judgment during the development of the projects.', 'start': 24943.263, 'duration': 4.882}, {'end': 24955.028, 'text': 'So, basically, depending on these kind of variables and application may turn debugging on or off,', 'start': 24949.125, 'duration': 5.903}, {'end': 24960.51, 'text': 'connect to a specific database or listen on a specific port in node.js.', 'start': 24955.028, 'duration': 5.482}, {'end': 24967.633, 'text': 'There is a convention to use a variable called node underscore Env to set the current mode of the project,', 'start': 24960.55, 'duration': 7.083}, {'end': 24971.194, 'text': "whether it is in production stage or it's in the development stage.", 'start': 24967.633, 'duration': 3.561}], 'summary': 'Using node_env variable for project mode selection and configuration in node.js.', 'duration': 27.931, 'max_score': 24943.263, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk24943263.jpg'}, {'end': 25273.9, 'src': 'embed', 'start': 25247.562, 'weight': 5, 'content': [{'end': 25253.647, 'text': 'again, a very interesting question is cryptography supported in node.js again?', 'start': 25247.562, 'duration': 6.085}, {'end': 25254.748, 'text': 'The answer is yes.', 'start': 25253.667, 'duration': 1.081}, {'end': 25264.352, 'text': 'node.js support cryptography through a module called crypto, and this module provides various cryptographic functionalities like cipher, decipher,', 'start': 25254.748, 'duration': 9.604}, {'end': 25266.574, 'text': 'sign and verify functions, Etc.', 'start': 25264.352, 'duration': 2.222}, {'end': 25273.9, 'text': 'So cryptography implementing cryptography application is also possible with node.js.', 'start': 25267.115, 'duration': 6.785}], 'summary': 'Node.js supports cryptography through the crypto module, providing various cryptographic functionalities for implementing cryptography applications.', 'duration': 26.338, 'max_score': 25247.562, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk25247562.jpg'}, {'end': 25332.146, 'src': 'embed', 'start': 25303.367, 'weight': 4, 'content': [{'end': 25310.909, 'text': 'and there is always a better separation of concerns, and the code will be very cleaner and it will be helpful to read and debug.', 'start': 25303.367, 'duration': 7.542}, {'end': 25315.288, 'text': 'and you can say getting white, wider coverage metrics of the code.', 'start': 25311.744, 'duration': 3.544}, {'end': 25324.638, 'text': 'so you can read the code and you can debug the code if you keep the Express app and server as separate entities last.', 'start': 25315.288, 'duration': 9.35}, {'end': 25332.146, 'text': "What is the reason that it allows deploying the same API under flexible and different network condition? That's it.", 'start': 25324.758, 'duration': 7.388}], 'summary': 'Separating express app and server results in cleaner code, better readability, and improved debugging, leading to wider code coverage metrics and flexible deployment under different network conditions.', 'duration': 28.779, 'max_score': 25303.367, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk25303367.jpg'}], 'start': 23794.401, 'title': 'Node.js concepts and insights', 'summary': 'Covers node.js module exports, reactor pattern, front-end vs back-end development, node.js libraries, key concepts, control flow, async function calls, interview insights, and key concepts of node.js including buffer class, child threads, streams, node_env usage, file handling methods, timing features, pony code, differences from ajax, debugger availability, event emitter, cryptography support, and express app and server separation.', 'chapters': [{'end': 24060.308, 'start': 23794.401, 'title': 'Node.js module exports and reactor pattern', 'summary': 'Explains the purpose of module dot exports in node.js, reactor pattern for non-blocking i/o operations, front-end vs back-end development, lts release of node.js, and major security implementations, including callback hell.', 'duration': 265.907, 'highlights': ['Module dot exports in node.js is used to encapsulate all related codes into a single unit, shifting related functions into a single file. It is a way to encapsulate related codes into a single unit, enhancing modularity and organization.', 'Reactor pattern in node.js is a concept of non-blocking input output operations, providing a handler for each I/O operation and generating an event queue. The reactor pattern enables non-blocking I/O operations, utilizing a demultiplexer for handling concurrency and event queue generation.', 'Front-end development involves using markup and web languages like HTML, CSS, and JavaScript, while back-end development is based on programming and scripting languages and server architecture. Front-end development uses web languages for browser interaction, while back-end development focuses on server architecture and security.', 'The LTS release of node.js, which stands for long-term support, receives critical bug fixes, security updates, and performance improvements for at least 18 months, focusing on stability and security. The LTS release of node.js ensures long-term support with critical bug fixes, security updates, and stability enhancements for at least 18 months.', 'Implementing security within node.js involves authentication and error handling. Security implementation in node.js includes authentication and error handling to enhance application security.', 'Callback hell, also known as the pyramid of doom, is caused by intensively nested and unreadable callback functions when executing multiple asynchronous operations. Callback hell is a pattern of unreadable code caused by intensely nested callbacks, making the code hard to read and debug.']}, {'end': 24302.82, 'start': 24060.428, 'title': 'Node.js libraries and concepts', 'summary': 'Discusses key concepts including lib uv for asynchronous input output operations, middleware functions in node.js for executing, modifying, and finishing the request response cycle, url module for web address splitting, eslint for javascript linting, and the use of google v8 engine for fast application execution and response process.', 'duration': 242.392, 'highlights': ['lib UV is a multi-platform support library for node.js used for asynchronous input output operations and has a high efficient event loop and internal worker thread pool for IO blocking operations. lib UV is a multi-platform support library for node.js, providing a high efficient event loop and internal worker thread pool for IO blocking operations.', 'Middleware functions in node.js have access to the request and response objects, can execute code, update or modify the request and response objects, and help in finishing the request response cycle. Middleware functions in node.js have access to the request and response objects, and can execute code, update or modify the request and response objects.', 'The URL module in node.js provides utilities for URL resolution and parsing, splitting up a web address into readable parts using the required method. The URL module in node.js provides utilities for URL resolution and parsing, splitting up a web address into readable parts using the required method.', 'eslint is an open source project for JavaScript linting, aiming to provide a linting utility through plug and linters for bug classes related to the scope of a particular variable. eslint is an open source project for JavaScript linting, aiming to provide a linting utility through plug and linters for bug classes related to the scope of a particular variable.', 'Node.js uses Google V8 engine for converting JavaScript code into native machine code, making the application very fast running and speeding up the execution and response process. Node.js uses Google V8 engine for converting JavaScript code into native machine code, making the application very fast running and speeding up the execution and response process.']}, {'end': 24776.498, 'start': 24303.58, 'title': 'Working of control flow and key concepts in node.js', 'summary': 'Covers the working of control flow function in node.js, including its main function, steps involved, asynchronous function calls, and the key concepts of async dot q arguments, span and fork methods, global objects, stubs, assert module, test pyramid, purpose of express.js package, and the difference between process dot next stick and set immediate methods.', 'duration': 472.918, 'highlights': ['The purpose of Express.js package Express.js is a framework built on top of node.js to manage the flow of data between server and routes in server-side applications, providing a wide range of features for web applications.', 'Test pyramid concept The concept emphasizes having a higher number of low-level unit tests as compared to high-level end-to-end tests, specifically for HTTP APIs, with the core principle being to prioritize a higher number of low-level unit tests for each module.', 'Difference between set immediate and process dot next tick methods Set immediate queues its callback on the event loop, while process dot next tick does not queue, both being functions of the timers for executing code after a predefined period, with the difference lying in their waiting for the next pass around in the event loop.', 'Control flow function in Node.js It controls the request of execution, gathers the information, helps in breakpoint simultaneousness, and calls the following stage in a program, mainly executed between various asynchronous function calls, controlling the order of execution, collecting required data, limiting concurrency, and invoking the next step of the program.', 'Async dot Q arguments It takes a task function and a concurrency value as input, playing a crucial role in managing asynchronous operations in Node.js.']}, {'end': 25352.229, 'start': 24776.498, 'title': 'Node.js interview insights', 'summary': 'Covers key concepts of node.js including buffer class, handling child threads, streams, node_env usage, file handling methods, timing features, pony code, differences from ajax, debugger availability, event emitter, cryptography support, and the reason for keeping express app and server separate.', 'duration': 575.731, 'highlights': ["Node.js supports cryptography through a module called crypto, providing various cryptographic functionalities like cipher, decipher, sign, and verify functions. The module 'crypto' in Node.js provides cryptographic functionalities like cipher, decipher, sign, and verify functions, enhancing the security features of Node.js applications.", 'The reason for keeping Express app and server separate is faster testing execution, better separation of concerns, cleaner code, and wider coverage metrics of the code. Separating Express app and server allows for faster testing execution, cleaner code, better separation of concerns, and wider coverage metrics, leading to efficient testing and code readability.', 'Node.js provides a buffer class for storing raw data and is easily accessible across all modules, used for handling binary data in Node.js. The buffer class in Node.js allows for storing raw data, accessible across all modules, enabling the handling of binary data efficiently within Node.js applications.', "Node.js provides a 'streams' concept, which is useful for reading, writing, and processing large sets of data through readable, writable, duplex, or transform streams. The 'streams' concept in Node.js enables reading, writing, and processing large sets of data through readable, writable, duplex, or transform streams, enhancing data handling capabilities.", 'Node.js has a single-threaded architecture but allows the usage of child threads using the spawn method for specific asynchronous input-output tasks. Despite being single-threaded, Node.js enables the usage of child threads for specific asynchronous input-output tasks using the spawn method, enhancing parallel processing capabilities.']}], 'duration': 1557.828, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/JnvKXcSI7yk/pics/JnvKXcSI7yk23794401.jpg', 'highlights': ['lib UV is a multi-platform support library for node.js, providing a high efficient event loop and internal worker thread pool for IO blocking operations.', 'Node.js uses Google V8 engine for converting JavaScript code into native machine code, making the application very fast running and speeding up the execution and response process.', 'The LTS release of node.js ensures long-term support with critical bug fixes, security updates, and stability enhancements for at least 18 months.', 'Node.js provides a buffer class for storing raw data, accessible across all modules, used for handling binary data efficiently within Node.js applications.', 'Separating Express app and server allows for faster testing execution, cleaner code, better separation of concerns, and wider coverage metrics, leading to efficient testing and code readability.', "The module 'crypto' in Node.js provides cryptographic functionalities like cipher, decipher, sign, and verify functions, enhancing the security features of Node.js applications.", 'Middleware functions in node.js have access to the request and response objects, and can execute code, update or modify the request and response objects.', 'Module dot exports in node.js is used to encapsulate all related codes into a single unit, enhancing modularity and organization.', 'The URL module in node.js provides utilities for URL resolution and parsing, splitting up a web address into readable parts using the required method.', 'Express.js is a framework built on top of node.js to manage the flow of data between server and routes in server-side applications, providing a wide range of features for web applications.']}], 'highlights': ['Node.js handles over two million RPCs per second at Uber', 'Node.js solved the limitations of multi-thread architecture using single-thread architecture', 'Node.js is one of the most heavily used JavaScript frameworks for server-side web application development', 'MEAN stack application involves MongoDB, ExpressJS, Angular, and NodeJS', 'Node.js is an open source server environment using JavaScript', 'Node.js operates on an event-driven architecture, enabling asynchronous processing of events', 'Node.js supports asynchronous programming and uses a single-threaded model', 'Node.js uses Google V8 engine for converting JavaScript code into native machine code', 'ExpressJS reduces application development time', 'Usage of REST APIs in client-server communication', 'Node.js with Docker speeds up the application deployment process', 'MySQL offers robust security mechanisms developed over 10 years', 'Features of MongoDB include indexing, replication, ad hoc queries, schema-less, and sharding', 'The LTS release of node.js ensures long-term support with critical bug fixes', 'lib UV is a multi-platform support library for node.js']}