Course Content
Chapter 1 - Introducing Course
- About Sahosoft
- Basic Recursion
- Course Introduction
- Course Overview
- Where to find the Course Source Code
Chapter 2 - Introducing MERN, MEAN, MEVN
- MERN, MEAN, MEVN
- What is Stack?
- What is MERN Stack?
- Components of MEAN Stack
- Advantages of MEAN Stack
- Disadvantages of MEAN Stack
- What is MEAN Stack?
- Components of MERN Stack
- Advantages of MERN Stack
- Disadvantages of MERN Stack
- What is MEVN Stack?
- Components of MEVN Stack
- Advantages of MEVN Stack
- Disadvantages of MEVN Stack
Chapter 3 - Introducing API
- What is API
- What is REST | REST API & RESTFUL API
- Architecture of REST
- Principles of REST API
- Client-Server
- Stateless
- Cacheable
- Uniform Interface
- Layered system
- Code on demand
- Methods of REST API | Http Verbs
- Get
- Post
- Put
- Delete
- Trace
- Options
- Connect
- Patch
Chapter 4 - Introducing mongodb
- What is data?
- What is database?
- What is DBMS?
- What is Relational Database?
- What is Non-Relational Database?
- Why NoSQL?
- Types of NoSQL database
- Columnar Database
- Document Database
- Key Value Database
- Graph Based Database
-
- What is the CAP Theorem?
- Consistency
- Availability
- Partition Tolerance
- What is distributed storage?
- How to implement distributed database in RDBMS like SQL Server?
- What is MongoDB
- History of MongoDB
- Purpose of building MongoDB
- What is document oriented database
- Features of MongoDB
- MongoDB Advantages
- Where MongoDB should be used
- Before learning MongoDB
- What is Database in MongoDB
- What is Collection in MongoDB
- What is Document in MongoDB
- What is Field in MongoDB
- JSON and BSON
- What is JSON
- What is BSON
- Does MongoDB use BSON, or JSON?
- JSON vs BSON
- MongoDB Datatypes
- Frequently Asked Questions
- What kind of database is MongoDB?
- Does MongoDB database store its data in tables?
- Do MongoDB databases have schemas?
- Does MongoDB support SQL?
- What are typical uses for MongoDB?
- Does MongoDB support transactions?
- Does MongoDB require a lot of RAM?
- Does MongoDB handle caching?
-
- MongoDB – Environment
- MongoDB Shell
- MongoDB Compass
- What is mongod
- What is Mongo
- What is Mongos
- Setting up Environment Variables
- MongoDB Create Database
- MongoDB Drop Database
- MongoDB Different port
- MongoDB - Data Modelling
- Embedded Data Model
- Normalized Data Model
- MongoDB Create Collection
- How does MongoDB create collection automatically?
- MongoDB Drop collection
- MongoDB insert documents
- The insertOne() method
- The insert() Method
- The insertMany() method
- MongoDB update documents
- MongoDB Update() Method
- MongoDB Save() Method
- MongoDB findOneAndUpdate() method
- MongoDB updateOne() method
- MongoDB updateMany() method
- MongoDB Delete documents
- Remove all documents
- Remove all documents that match a condition
- Remove a single document that match a condition
- MongoDB Query documents
- The find() Method
- The pretty() Method
- The findOne() method
- MongoDB - Comparison Operators
- Equality
- Less Than
- Less Than Equals
- Greater Than
- Greater Than Equals
- Not Equals
- Values in an array
- Values not in an array
- MongoDB - Logical Operator
- AND in MongoDB
- OR in MongoDB
- Using AND and OR Together in MongoDB
- NOR in MongoDB
- NOT in MongoDB
- MongoDB - Element Operator
- MongoDB – Projection
- MongoDB – Limit Records
- The Limit() Method
- MongoDB Skip() Method
- MongoDB –Sort Records
- MongoDB – Basic Level Query practice
- Full-Text Search in MongoDB
- Introducing MongoDB Text Search
- Creating a Text Index
- Indexing a Single Field
- $text in MongoDB
- Text Search Score (Sort by Text Search Score)
- Sorting in text search in MongoDB
- Indexing Multiple Fields (Compound Indexing)
- Deleting Text Index
- Indexing the Entire Document (Wildcard Indexing)
- Phrase Search
- Negation Search
- Looking Behind the Scenes
- Weighted Text Search
- Perform Case Sensitive Search
- Case Sensitive Search for a Term
- Case Sensitive Search for a Phrase
- Case Sensitivity with Negated Term
- Text Search with Additional Query and Sort Expressions
- Change the mongo Shell Batch Size
- Indexes in Mongodb
- What is MongoDB Index?
- Understanding Impact of Indexes
- Different Types of Indexing in MongoDB
- Default_id Index
- Single Field Index
- Compound Index
- Multi-Key Index
- Special Index (Geospatial, Text, TTL)
- Hashed Indexes
- How to Find Indexes
- How to Drop Indexes
- How to Remove all Indexes?
- MongoDB Compass
- How to Download and Install MongoDB Compass
- Establishing connection with MongoDB Compass
- Favorite Connections
- Save a Favorite Connection
- Save from Connect Screen
- Regular Expressions in MongoDB
- What Are Regular Expressions in MongoDB?
- Using $regex operator for Pattern matching
- Exact pattern matching
- must start with letter
- Pattern Matching with $options
- Pattern matching without the regex operator
- How to Use regex for array element in MongoDB?
- USING MONGODB REGULAR EXPRESSIONS (REGEX) WITHOUT SLOWING YOUR CLUSTER DOWN
- What’s a regex query?
- How to avoid regex queries from scanning a whole index?
- Case insensitive with no anchor
- $regex vs. /pattern/ Syntax
- $in Expressions
- Implicit AND Conditions for the Field
- $regex and $not
- Index Use
- Perform a LIKE Match
- Perform Case-Insensitive Regular Expression Match
- Multiline Match for Lines Starting with Specified Pattern
- Use the. Dot Character to Match New Line
- MongoDB - Analyzing Queries
- Using $explain
- Using $hint
- MongoDB - Aggregation
- What is MongoDB Aggregation?
- MongoDB Aggregation Pipeline
- Map-Reduce
- Single Purpose Aggregation Operations
- Stages of MongoDB Aggregation Pipeline
- $match
- $project
- $group
- $unwind
- $sort
- $skip
- $limit
- $sample
- MongoDB Aggregation Pipeline states/Operators: Additional
- $addFields
- $count
- $lookup
- $sortByCount
- $facet
- MongoDB - $unwind operator in Depth
- How $unwind works with non-array field paths
- Missing field as the path
- $unwind operator options
- includeArrayIndex option
- preserveNullAndEmptyArrays option
- Grouping data by Unwound values
- Using $unwind on embedded arrays
- MongoDB Aggregation Expression
- $sum
- $avg
- $min
- $max
- $push
- $addToSet
- $first
- $last
- MongoDB aggregate Set Operator
- $setEquals
- $setIntersection
- $setUnion
- $setDifference
- $setIsSubset
- $anyElementTrue
- $allElementsTrue
- Query and Projection Operators
- $eq
- $gt
- $gte
- $in
- $lt
- $lte
- $ne
- $nin
- $and
- $not
- $nor
- $or
- Element
- Evaluation
- $expr
- $jsonSchema
- $mod
- $regex
- $text
- $where
- Array
- Projection Operators
- $
- $elemMatch
- $meta
- $slice
- Miscellaneous Operators
- $type
- $expr
- Using $expr with Conditional Statements
- Query and Projection Operators
- $concat
- $split
- $substr
- $toLower
- $toUpper
- $strcasecmp
- $strLenCP
- $substrCP
- $$indexOfCP
- Arithmetic Aggregation Operators
- $add
- $subtract
- $multiply
- $divide
- $abs
- $ceil
- $floor
- $trunc
- $mod
- $pow
- $sqrt
- Array Aggregation Operators
- $arrayElemAt
- $concatArrays
- $filter
- $indexOfArray
- $isArray
- $range
- $reverseArray
- $reduce
- $size
- $slice
- $zip
- $in
- $reduce (aggregation)
- Conditional Aggregation Operators
- Aggregation Variable Operators
- Aggregation Literal Operators
- Date()
- Date Aggregation Operators
- $dayOfYear
- $dayOfMonth
- $dayOfWeek
- $year
- $month
- $week
- $hour
- $minute
- $second
- $millisecond
- $dateToString
- Group Accumulator Operators
- $sum
- $avg
- $first
- $last
- $max
- $min
- $push
- $addToSet
- $stdDevPop
- $stdDevSamp
- Miscellaneous Operators
- $dateFromString
- $dateFromParts
- $dateToParts
- $ltrim
- $rtrim
- $trim
- $replaceRoot
- $mergeObjects
- $replaceWith
- $sample
- $rand
- $round
- $objectToArray
- $arrayToObject
- $replaceOne
- $replaceAll
- $set
- $meta
- $bsonSize
- $regexFind
- $regexFindAll
- $regexMatch
- $convert
- $toBool
- $toString
- $toInt
- $toLong
- $toDecimal
- $toDouble
- toDate
- toObjectId
- System Variables
- What is System Variables
- NOW
- CLUSTER_TIME
- ROOT
- CURRENT
- REMOVE
- DESCEND
- PRUNE
- KEEP
- Field Update Operators
- $set
- $inc
- $min
- $max
- $mul
- $rename
- $currentDate
- $setOnInsert
- $unset
- Array Update Operators
- $ (update)
- $[]
- $[identifier]
- $addToSet
- $pull
- $push
- $pullAll
- Update Operator Modifiers
- $each
- $position
- $slice
- $sort
- Cursor in MongoDB
- What is Cursor in MongoDB?
- Count() Method
- Limit() Method
- Skip() Method
- Sort() Method
- Next() Method
- toArray() Method
- hasNext() method
- Explain() Method
- hint() Method
- itcount() Method
- batchSize() Method
- objsLeftInBatch() Method
- map() Method
- pretty() Method
- MongoDB Database Command
- commandHelp
- copyDatabase
- createCollection
- capped
- autoIndexId
- size
- max
- dropDatabase
- fsyncLock
- fsyncUnlock
- getCollection
- getCollectionNames
- getMongo
- getName
- getSiblingDB
- help
- hostInfo
- listCommands
- printCollectionStats
- stats
- version
- aggregation
- shutdownServer
- MongoDB Bulk Operation Methods
- Bulk()
- Ordered Operations
- Unordered Operations
- Bulk Methods
- Bulk.insert()
- Bulk.find()
- Bulk.find.removeOne()
- Bulk.find.remove()
- Bulk.find.replaceOne()
- Bulk.find.updateOne()
- Bulk.find.update()
- Bulk.find.upsert()
- Bulk.execute()
- Bulk.getOperations()
- Bulk.tojson()
- Bulk.toString()
- What is Replication in MongoDB?
- Key features of Replication
- What is a Replica Set in MongoDB?
- Replica Set Features
- How Replication Works in MongoDB
- Replica Set Oplog
- What is Heartbeat in Replication?
- Replica Set Primary
- Replica Elections
- What is Sharding in MongoDB?
- Vertical Scaling
- Horizontal Scaling
- Advantages of Sharding
- Sharded Cluster
- Sharding Strategy
- Hashed Sharding
- Ranged Sharding
Chapter 5 – Advance JavaScript
- How JavaScript Works
- What is Execution Context
- What is Execution Stack
- What is Creation Phase
- What is Execution Phase
- Phase of execution context
- Creation Phase
- Execution Phase
- Property of execution context
- Variable Object
- Scope Chain
- 'this' Variable
- Function Hoisting in JavaScript
- Variable Hoisting in JavaScript
- Scope Chain & Lexical Scoping in JavaScript
- this in JavaScript
- JavaScript Object
- JavaScript Objects Are Mutable
- JavaScript Object Properties
- Accessing JavaScript Properties
- JavaScript Object Loop
- Adding/Deleting New Properties in Object
- JavaScript Object Methods
- Accessing Object Methods
- Adding a Method to an Object
- JavaScript Object.values()
- JavaScript JSON.stringify()
- JavaScript Stringify Functions/Array
- JavaScript Object Accessors
- JavaScript Accessors (Getters and Setters)
- Why Using Getters and Setters?
- JavaScript Object Constructors
- JavaScript Object Prototypes
- JavaScript Data Types
- Primitive data type
- Non-primitive (reference) data type
- Pass by Value Vs Pass by Reference in JavaScript
- Shallow copy and Deep copy in JavaScript
- Functions is First Class Citizens
- Callback Function in JavaScript
- Higher Order Function in JavaScript
- Immediately Invoked Function Expression - IIFE
- Closure in JavaScript
- What is Synchronous Programming in JavaScript
- What is Asynchronous Programming in JavaScript
- Synchronous vs Asynchronous Programming in JavaScript
- Why Asynchronous?
- Event Loop in JavaScript
Chapter 6 – ES6/ES7/ES8
- What is ECMAScript?
- ECMAScript Editions
- var, let & const
- Template Literals in JavaScript
- Template literals (template strings) Method
- Array Destructuring
- Object Destructuring
- Default Parameters
- Rest Parameters
- Fat Arrow Function
- Spread Operator
- Callback hell in JavaScript
- Promises in JavaScript
- Async Await in JavaScript
Chapter 7 - Module Import - Export
- What is Module
- What is Export
- Module - Export
- Types of Export
- Default Export
- Named Export
- Module - Default Export
- Module – Named Export
- Module – Import
- Types of Import
- Default Import
- Named Import
- Module - Importing Default
- Module - Importing Named
- Module - Importing All
- Module - Importing default & named
Chapter 8 – Introducing Node JS
- What is Node.js?
- What is V8?
- WHY Node.js?
- Features of Node.js
- Who Uses Node.js?
- Where to Use Node.js?
- Prerequisites
- Node.js Frameworks and Tools
- Setup Node.js Development Environment
- What is a Node.js File?
- Run Node.js scripts from the command line
- Creating First Node.js Application
- A brief history of Node.js
- How much JavaScript do you need to know to use Node.js?
- Differences between Node.js and the Browser
- Difference between Node.JS and JavaScript
- What do you mean by non-blocking or asynchronous?
- Node.js Process Model
- Traditional Web Server Model
- Node.js Process Model
- Make Server Output on Browser | Write Basic Level API in node js
- Node.js Console
- console.log()
- console.error()
- console.warn()
- What is REPL
- Simple Expression
- Use Variables
- Multiline Expression
- Underscore (-) Variable
- Editor Mode
- Module in Node JS
- What is a Module in Node.js?
- Node.js Module Types
- Core Modules
- Local Modules
- Third Party Modules
- What is Node.js Core Modules (Built-in Modules)
- Include/Loading Core Modules
- What is Node.js Local Module (Own Modules)
- Export Module in Node.js
- Different types as a module using module.exports
- Export Literals
- Export Object
- Export Function
- Export Function as a Class
- Load Module from the Separate Folder
- Exporting Multiple Methods and Values
- Complete NPM
- What is a Package?
- What is NPM (Node Package Manager)
- Global vs Local Installation
- What is package.json
- Attributes of Package.json
- Using Semantic Versioning to manage packages
- package-lock.json
- Search a Module
- Create a Module
- Updating a Module
- Uninstalling a Module
- What is Module Wrapper Function in Node.JS
- Node.js Core Module (File System Module)
- Common use for the File System module
- Read files
- Create files
- Update files
- Delete files
- Rename files
- Node.js - Callback
- Node.js - Event Loop
- What is Event Loop
- Features of Event Loop
- Difference between Events and Callbacks
- EventEmitter class to bind event and event listener
- bind event handler with an event
- fire an event
- Node.js - Event Emitter
- What is Event Emitter
- Event Emitter Methods
- addListener(event, listener)
- on(event, listener)
- once(event, listener)
- removeListener(event, listener)
- removeAllListeners([event])
- EventEmitter.defaultMaxListeners
- setMaxListeners(n)
- getMaxListeners(n)
- listeners(event)
- emit(event, [arg1], [arg2], [...])
- eventNames()
- Event Emitter Class Methods
- listenerCount(emitter, event)
- eventEmitter.prependOnceListener()
- eventEmitter.prependListener()
- Event Emitter Events
- newListener
- removeListener
- Asynchronous events
- setImmediate()
- process.nextTick()
- Node.js – Buffers
- Creating Buffers
- Writing to Buffers
- Reading from Buffers
- Concatenate Buffers
- Compare Buffers
- Copy Buffer
- Slice Buffer
- Buffer Length
- Buffer Class Methods
- Buffer.isEncoding(encoding)
- Buffer.isBuffer(obj)
- Buffer.byteLength(string[, encoding])
- Buffer.concat(list[, totalLength])
- Buffer.compare(buf1, buf2)
- Node.js – Streams
- What exactly are streams?
- Advantages of Streams
- Types of streams
- Writable
- Readable
- Duplex
- Transform
- Reading from a Stream
- Writing to a Stream
- Piping the Streams
- Chaining the Streams
- Node.js - Global Objects
- List of Node.js global object
- __dirname
- __filename
- Console
- Process
- Buffer
- setImmediate(callback[, arg][, ...])
- setInterval(callback, delay[, arg][, ...])
- setTimeout(callback, delay[, arg][, ...])
- clearImmediate(immediateObject)
- clearInterval(intervalObject)
- clearTimeout(timeoutObject)
- Node.js File System Module
- Common use for the File System module:
- Read files
- Create files
- Update files
- Delete files
- Rename files
- Truncate files
- Common Errors when using the File System Module
- Node.js Synchronous vs Asynchronous
- What is Synchronous and Asynchronous approach?
- Node.js File Information Method
- Get File Information
- stats.isFile()
- stats.isDirectory()
- stats.isBlockDevice()
- stats.isCharacterDevice()
- stats.isSymbolicLink()
- stats.isFIFO()
- stats.isSocket()
- Methods for Working with Directories in Node.js
- Check If a Directory Exists
- Create a New Directory
- List All the Files in a Directory (including sub-directories)
- Get All the Files in the Directory
- Get The Number of Files in a Directory
- Rename a Directory
- Delete an Empty or Non-Empty Directory
- Delete an Empty Directory
- Delete a Non-Empty Directory Along with Its Contents
- How to Add Comments in Node.js
- Single-Line Comments
- Block Comments
- OS Module in Node.JS
- What is OS Module
- Methods of OS Module
- arch()
- constants
- cpus()
- endianness()
- EOL
- freemem()
- hostname()
- loadavg()
- networkInterfaces()
- platform()
- release()
- tmpdir()
- totalmem()
- type()
- uptime()
- userInfo()
- Path Module in Node.JS
- What is Path Module
- Methods of Path Module
- basename()
- delimiter
- dirname()
- extname()
- format()
- isAbsolute()
- join()
- normalize()
- parse()
- posix
- relative()
- resolve()
- sep
- win32
- Node.js StringDecoder
- Node.js Query String
- Node.js Query String Methods
- querystring.parse(str[, sep][, eq][, options])
- querystring.stringify(obj[, sep][, eq][, options])
- What is a Web Server?
- Create Node.js Web Server
- Listen to the server
- Handle HTTP Request (Node JS Routing Handle HTTP Requests)
- Sending JSON Response
- JSON.stringify()
- JSON.parse()
- What is API?
- Parse a querystring
- Handling GET Requests in Node.js
- Node.js URL Module
- The Built-in URL Module
- Returning Different Types of Content
- Converting Callbacks to Promises in Node.js
- What is a Callbacks
- What is a Callbacks hell
- What is a Promise
- Converting a Callback to a Promise
- Creating Your Promise
- Node.js Promisify
- fs promises
- Reading Files with readFile() promises
- Writing Files with writeFile() promises
- Deleting Files with unlink() promises
- Moving Files with rename() promises
- Node.js Upload Files
- Node.js Redirect URL
- Debug Node.js Application
- What is Express?
- What is Express?
- Advantages of Express.js
- Install Express.js
- Send Text,HTML & JSON Data as a Response using Express JS
- Express.js Routing
- Serve Static Resources using Express.js
- Serve HTML CSS & JS Files
- Serve Static Website using HTML & CSS
- ExpressJS - HTTP Methods
- Handle GET Request
- Handle POST Request
- Handle PUT Request
- Handle DELETE Request
- ExpressJS - URL Building
-