NodeJS 中间件如何工作?
How NodeJS middlewares works?
我的问题是为什么 console.log("after middleware")
只打印一次而 app.use(foo)
在每次重新加载页面后调用。尽管页面重新加载,但在控制台中使用 npm start
后是否会解释一次使用 NodeJS 代码?
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)
基本上,为了简化一点,app.use()
是一个侦听器,每次访问页面时都会调用它。另一方面,console.log()
是仅调用一次的常规代码,当您的代码为 运行.
时
中间件是一个函数,return一个函数。
示例:
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")
})
我的问题是为什么 console.log("after middleware")
只打印一次而 app.use(foo)
在每次重新加载页面后调用。尽管页面重新加载,但在控制台中使用 npm start
后是否会解释一次使用 NodeJS 代码?
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)
基本上,为了简化一点,app.use()
是一个侦听器,每次访问页面时都会调用它。另一方面,console.log()
是仅调用一次的常规代码,当您的代码为 运行.
中间件是一个函数,return一个函数。 示例:
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")
})