Skip to content

Latest commit

 

History

History
132 lines (89 loc) · 4.84 KB

README.md

File metadata and controls

132 lines (89 loc) · 4.84 KB

NODE.JS

Node.js(2009) is an open-source, cross-platform  JavaScript(1995) (asynchronous event-driven) runtime environment that executes JavaScript code outside of a web browser. It allows developers to use JavaScript for server-side scripting, enabling them to build scalable and high-performance network applications. Node.js is built on the V8 JavaScript runtime engine.

EXAMPLE

  • BROWSER SENDS REQUEST TO SERVER(NODEJS) TO HAVE A HTML
  • SERVER SENDS A RESPONSE WITH THE HTML FILE

 

NVM (node version manager used for different versions)

node -v : gives node version
nvm install xx.xx.xx : installs specific version of node.js
nvm use xx.xx.xx : use specific version of node.js

REPL (Read Evaluate Print Loop)

It is a programming language environment (basically a console window) that takes single expression as user input and returns the result back to the console after execution of node.js

node index.js or node . : runs the app from terminal

Global variables

Global  variables can be declared with a value, and which can be accessed anywhere in a program. The scope of global variables is not limited to the function scope or any particular JavaScript file (using require and the file that are declared). It can be declared in one place and then used in multiple places.

Common Global Objects in Node.js

global (using inside a module and inside other files with the usage of require)

process (inbuilt global object in NodeJS)

////////////////////////////////////////////////////////////////////////////////////////////////////////

process.on('exit', function(){ sample function })

(this function does something during on exit)

the process object in Node.js is a global object that can be accessed inside any module without requiring it.

'exit' : Event emitters (transmit events) are objects in Node. js that trigger an event by sending a message to signal that an action was completed

function() : callback is a non-blocking function They're called when the function that contains the callback as an argument completes its execution, and allows the code in the callback to run in the meantime. Callbacks help us make asynchronous calls. we say it callback because isn't called the first time node.js sees it is only called after the exit event occurs at some point on the future.

////////////////////////////////////////////////////////////////////////////////////////////////////////

Customs callbacks

This method is used when we have something running and is cpu intensive

const { EventEmitter }=require( 'events');  
const eventEmitter=new EventEmitter();  
eventEmitter.on( 'lunch' ,()=>{  
console. log( 'yum ')})
eventEmitter.emit('lunch');

////////////////////////////////////////////////////////////////////////////////////////////////////////

when we see sync===blocking (strictly equal)

const { readFile, readFileSync }=require( 'fs');
const txt= readFileSync('./hello.txt' ,'utf8');  
console. log(txt);  
console.log('do this ASAP')

we can synchronously read files, i.e. we are telling node.js to block other parallel processes and do the current file reading process. prints first what is inside the txt file (no matter how it longs it takes) and then "do this ASAP"

////////////////////////////////////////////////////////////////////////////////////////////////////////

readFile('./hello.txt','utf8',(err,txt) =>{
console.log(txt)
});  
console.log( 'do this ASAP')

the do this ASAP message comes first, but node.js registers the callback executes the script and finally runs the callback when the file has been read.

 prints first "do this ASAP" and second what is inside the txt file

The Promises solution (asynchronous and non-blocking)

Promises are a powerful tool in Node. js for simplifying asynchronous code, making it more readable and maintainable. Promises have three states: pending, fulfilled (resolved), and rejected. This state-based model allows for clear handling of success and error scenarios. Namespaces are simply named JavaScript objects in the global namespace.

const { readFile } =require( 'fs').promises;  
async function hello() {  
const file=await readFile(' ./hello.txt', 'utf8');}

adding fs from promises namespace

Modules

module.exports = {
    food: 'pastitsio' 
}

using module.exports

Commands:
npm : node package manager
npm init -y : produces the package. json file
npm install express (express is a module) : installs express module and an entry added in package.json file as dependency

Syntax

console.log(“hello world”);
global.varx = ‘13’;
console.log(global.varx);
process.on(‘exit’, function(){ sample function }) (this function does something during on exit)
const express = require( ' express' ) ; (adding a module inside a file so we can use it)