npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

cloudflare-express

v1.0.1

Published

Restores visitors IP after being proxied by cloudflare

Downloads

417

Readme

CloudFlare Express

Express middleware for restoring visitors IP after being proxied through cloudflare.

I couldn't find a simple cloudflare module so I made one instead.

Usage

$ npm install cloudflare-express --save
var cloudflare = require('cloudflare-express');

Assuming:

var express = require('express');
var app = express();

Then you just need to use this as a middleware, (preferably before any other middleware is used.)

  app.use(cloudflare.restore());

You can access the users original ip address by using the cf_ip property that is now set on all request objects in their routes.

router.get('/test', function(req,res,next){
  res.send("Your IP is: "+req.cf_ip);
});

###Options To update the Cloudflare IP list on startup, pass update_on_start:true. This will grab the latest IP list from Cloudflare and save it to your cloudflare_ip.json file.

	app.use(cloudflare.restore({update_on_start:true}))

Notes

  • If the cf-connecting-ip header is missing or the req.ip is not on the cloudflare IP list, the cf_ip property will be set to req.ip.
  • If you're running behind an additional reverse proxy such an nginx, you may need to pass the trust proxy option to the express app. You can see more on how to do this at: http://expressjs.com/api.html#app-settings.

##Tests

npm test

Dependencies