GithubHelp home page GithubHelp logo

request-stats's Issues

Not working over a https server

Hey hey,

It looks like it only works for http servers. I made a quick fix to make it works.

index.js:

'use strict'

var http = require('http')
var https = require('https')
var StatsEmitter = require('./lib/stats_emitter')

module.exports = function (req, res, onStats) {
  var statsEmitter = new StatsEmitter()

  if (req instanceof http.Server || req instanceof https.Server) {
    statsEmitter._server(req, res);
  }
  else
  if (req instanceof http.IncomingMessage) {
    statsEmitter._request(req, res, onStats);
  }
  return statsEmitter
}

stats.req.path may not be the real path requested

main.js

'use strict';

const express = require('express');
const requestStats = require('request-stats');

var app = express();

app.use('/api', (req, res, next) => {
  console.log('req.url:', req.url);
  console.log('req.originalUrl:', req.originalUrl);
  res.end('OK');
});

var server = app.listen(process.env.PORT || 3000, () => {
  console.log('Listening on port %d', server.address().port);
});

requestStats(server, (stats) => {
  console.log('stats.req.path:', stats.req.path);
});
$ node main.js 
Listening on port 3000
$ curl http://localhost:3000/api/user
req.url: /user
req.originalUrl: /api/user
stats.req.path: /user

How to integrate with an expressJs server

This does not work.

  const app: Application = express();
  ...
  // Request Stats
  var stats = requestStats(app);
  
  console.log("stats", stats);
  
  stats.on("request", function (req) {
    // every second, print stats
    var interval = setInterval(function () {
	    var progress = req.progress();
	    console.log(progress);
	    if (progress.completed) clearInterval(interval);
    }, 1000);
  });

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.