将中间件功能应用于特定请求

问题描述 投票:0回答:2

我想将特定的中间件函数应用于两个post请求,但不是get请求。我怎么能这样做?

var router = express.Router();
var app = express();

router.post('/jobs',(req,resp)=>{
  var messageString = JSON.stringify(req.body);
  Job.accept(messageString,(statusCode,respObject)=>{
    resp.status(statusCode).json(respObject);
  });
});

router.get('/jobs',(req,resp)=>{
  Job.status((statusCode,respObject)=>{     
      resp.status(statusCode).json(respObject);  
  });
});

router.post('/try',(req,resp)=>{
  var messageString = JSON.stringify(req.body);
  Job.ok(messageString,(statusCode,respObject)=>{
    resp.status(statusCode).json(respObject);
  });
});

我正在阅读关于app.use,但无法真正理解它的用法。

node.js express middleware
2个回答
0
投票

将所需的中间件添加到该功能中。这是我记录用户IP的示例

const myLogger = (req, res, next) => {
  console.log('got a request from', req.connection.remoteAddress);
  next();
}

app.post('/jobs', myLogger, (req, res) => {
  //your code here...
}

0
投票

连同上面提到的答案,写app.use(myLogger)

© www.soinside.com 2019 - 2024. All rights reserved.