how to make middleware in node js code example

Example 1: what is middleware in node js

Notice the call above to next(). Calling this function invokes the next middleware function in the app. The next() function is not a part of the Node.js or Express API, but is the third argument that is passed to the middleware function. The next() function could be named anything, but by convention it is always named “next”. To avoid confusion, always use this convention.

Example 2: middleware in node js

var express = require('express')
var app = express()

var myLogger = function (req, res, next) {
  console.log('LOGGED')
  next()
}

app.use(myLogger)

app.get('/', function (req, res) {
  res.send('Hello World!')
})

app.listen(3000)

Example 3: what is app.use() used for

//app.get will see only exact match ex.> "/book" here app.get will not allow /book/1, etc 
//but app.use is different see below

//what is difference between app.use and app.all
//app.use takes only 1 callback while app.all takes multiple callbacks
//app.use will only see whether url starts with specified path But, app.all() will match the complete path

app.use( "/book" , middleware);
// will match /book
// will match /book/author
// will match /book/subject

app.all( "/book" , handler);
// will match /book
// won't match /book/author   
// won't match /book/subject    

app.all( "/book/*" , handler);
// won't match /book        
// will match /book/author
// will match /book/subject