Node.js Express:在app.get()和app.post()之前,对每个HTTP请求执行钩子?

Node.js Express:在app.get()和app.post()之前,对每个HTTP请求执行钩子?,node.js,express,Node.js,Express,我不想在每个app.get(),在app.get()之前,在每个请求上都放置一个身份验证函数,如何在每个请求上执行代码?在路由之前设置一个中间件: function myMiddleware (req, res, next) { if (req.method === 'GET') { // Do some code } // keep executing the router middleware next() } app.use(myMiddleware

我不想在每个
app.get()
,在
app.get()
之前,在每个请求上都放置一个身份验证函数,如何在每个请求上执行代码?

在路由之前设置一个中间件:

function myMiddleware (req, res, next) {
   if (req.method === 'GET') { 
     // Do some code
   }

   // keep executing the router middleware
   next()
}

app.use(myMiddleware)

// ... Then you load the routes
您还可以执行以下操作:

app.all('*', auth.requireUser);

哇,太好了。我查了一下,找到的唯一答案是破解核心文件,或者重写res.send函数。。。我从来没有听说过
next()
,我必须查一下。为什么有评论说
在服务器启动时运行一次
,如果它在每个请求上都运行,那么它就在所有中间件之上呢?事实上,这不是您使用中间件的标准方式。您能在此为
auth.requireUser
指定路由吗?