Telirw
Telirw

Reputation: 443

How NodeJS middlewares works?

My question is why console.log("after middleware") is printing only once while app.use(foo) is calling after every page reload. Does using NodeJS code is interpreted one time after use npm start in console despite page reload?

const express = require('express')
const app = express()

function foo(req, res, next) {
    console.log("middleware1")
    next()
}

app.use(foo)
console.log("after middleware");

app.get('/', function(req,res){
    res.send("main page")
})

app.listen(3000)

Upvotes: 0

Views: 43

Answers (2)

German
German

Reputation: 302

A middleware is a function that return a function. Example:

function myCustomMiddleware(x) {
   
  return function (req, res, next) {
    // This returned function can access to 'x' variable
    console.log(x)
    next() // Continue to the controller function.        
  }
}

app.get('/', myCustomMiddleware("Hello"), function(req,res){
  res.send("main page")
})

Upvotes: 0

Hacked
Hacked

Reputation: 102

Basically, to simplify it a little, app.use() is a listener, that is called every time the page is visited. The console.log() on the other hand is regular code that is called only once, when your code is run.

Upvotes: 2

Related Questions