Javascript NodeJS Express-希望在单个路由上运行两次处理程序

Javascript NodeJS Express-希望在单个路由上运行两次处理程序,javascript,node.js,loops,express,Javascript,Node.js,Loops,Express,我有一个路由router.get('/generateDoc',handleRequest)我想运行此HandlerRequest两次。有人能建议我如何处理这种情况吗 下面是我的代码示例 function handleRequest(req, res, next) { for (var i = 0; i < 2; i++) { cacheService.clean(); PdfController.generatePDfs(req, res, nex

我有一个路由
router.get('/generateDoc',handleRequest)我想运行此HandlerRequest两次。有人能建议我如何处理这种情况吗

下面是我的代码示例

function handleRequest(req, res, next) {
    for (var i = 0; i < 2; i++) {
        cacheService.clean();
        PdfController.generatePDfs(req, res, next);
    }
}
函数handleRequest(请求、恢复、下一步){
对于(变量i=0;i<2;i++){
cacheService.clean();
PdfController.generatePDfs(请求、回复、下一步);
}
}

这是一个奇怪的要求,但您可以做到:

function handleRequestInnards(req, res, next) {
  cacheService.clean();
  PdfController.generatePDfs(req, res, next);
}

function handleRequest(req, res, next) {
  handleRequestInnards(req, res, function() {
    handleRequestInnards(req, res, next);
  });
}
如果你有一个像这样的图书馆,你会有更多的运气,在那里你可以做出这样的承诺,并做如下事情:

function handleRequest(req, res, next) {
  Promise.all([
    handleRequest(req, res),
    handleRequest(req, res)
  ]).asCallback(next);
}

这是一个奇怪的要求,但你可以做到:

function handleRequestInnards(req, res, next) {
  cacheService.clean();
  PdfController.generatePDfs(req, res, next);
}

function handleRequest(req, res, next) {
  handleRequestInnards(req, res, function() {
    handleRequestInnards(req, res, next);
  });
}
如果你有一个像这样的图书馆,你会有更多的运气,在那里你可以做出这样的承诺,并做如下事情:

function handleRequest(req, res, next) {
  Promise.all([
    handleRequest(req, res),
    handleRequest(req, res)
  ]).asCallback(next);
}

我认为您还可以添加两次中间件:


router.get('/generateDoc',handleRequest,handleRequest)

我认为您也可以添加两次中间件:


router.get('/generateDoc',handleRequest,handleRequest)

谢谢,但是我们可以确定它何时第二次触发吗?也许您必须在
req
res
中设置一个变量,以便检查。谢谢,但是我们可以确定它何时第二次触发吗?也许您必须在
req
res
中设置一个可以设置的变量检查。