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
指定路由吗?