【问题标题】:Get the number of Requests in Express获取 Express 中的请求数
【发布时间】:2019-06-03 19:38:53
【问题描述】:

我想知道有没有办法用Expressjs获取特定路径中的请求总数?

【问题讨论】:

  • 为什么不维护一个计数器变量并在路由内部执行counter++? @Nicekor

标签: javascript node.js express server backend


【解决方案1】:

为什么不自己数呢?

let pingCount = 0;
app.get('/ping',(req, res) => {
  pingCount++;
  res.send(`ping world for ${pingCount} times`);
});

【讨论】:

  • 我就是这样做的,很好奇是否有任何具体的方法可以做到这一点。谢谢!
【解决方案2】:

我创建了一个中间件,该中间件将附加所有路由并计算访问次数。把它放在 app.js 中的路由之前

let page_visits = {};
let visits = function (req, res, next) {
  let counter = page_visits[req.originalUrl];
  if(counter || counter === 0) {
    page_visits[req.originalUrl] = counter + 1;
  } else {
    page_visits[req.originalUrl] = 1;
  }
  console.log(req.originalUrl, counter);
  next();
};

app.use(visits);

【讨论】:

  • 我已经这样做了,很好奇是否有任何特定的方法可以返回它。谢谢!
  • @Nicekor 很高兴听到这个消息。如果您觉得答案有帮助,请点赞。
  • else语句不应该将总数设置为1吗?
【解决方案3】:
let count=0;

function countMiddleware(req,res,next){
count++;
if(next)next();
}

app.use(countMiddleware);

function countMiddleware 充当中间件,因此它将为每个请求执行。count 变量会随着服务器上记录的每个请求而递增

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-08-01
    • 1970-01-01
    • 2017-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多