To understand the terms related to Node.js, I would like to discuss about Synchronization processing and Non Synchronization processing.
Synchronization processing and Non Synchronization processing
In Node.js the processes of file, network or input/output of database will be done by non synchronization processing to prioritize maximizing its performance.
Many libraries provides both non synchronization processing functions also synchronization processing functions as well.
Non Synchronization processing | Synchronization processing | Meaning |
fs.readFile() | fs.readFileSync() | Read file |
fs.writeFile() | fs.writeFileSync() | Write file |
fs.readdir() | fs.readdirSync() | Retrieve list of folders and files |
zlib.gzip() | zlib.gzipSync() | Compress |
crypto.pbkbf2() | crypto.pbkbf2Sync() | Encrypt password |
Actual example of Synchronization and Non Synchronization processing
const fs = require('fs') //Load file in Synchronization -- A const data = fs.readFileSync('test.txt', 'utf-8') console.log(data) //Load file in Non Synchronization --B fs.readFile('test.txt', 'utf-8', readHandler) // Once the loading has been done function readHandler (err, data) { console.log(data) }
The result
The results are the same with A and B. But Non Synchronization(B) needs additionally include the function that will be called after file loading.
C:\Users\Owner\Desktop\node>node sync-readfile.js This is the test. It is in "test.txt" // Result from A This is the test. It is in "test.txt" // Result from B
What is nameless function?
When we use nameless function we can easily define another new function. And the nameless function can be specified into function parameters as function objects.
// Example: transfer small caps to all caps const s = 'Actions speak louder than words.' const r = s.replace(/[a-z]+/g, function (m) { returnm.toUpperCase() }) console.log(r) // Example: Sort numbers in an array const ar = [100, 1, 30, 53, 20, 11, 4] ar.sort((a, b) => {return b -a}) console.log(ar)
The result
Like this example nameless function allows to define another function and the new function can be used as argument of functions or function objects.
C:\Users\Owner\Desktop\node>node mumei2.js ACTIONS SPEAK LOUDER THAN WORDS. [ 100, 53, 30, 20, 11, 4, 1 ]