Numerous Philanthropic Misanthropes

    koa-geo-ip

    0.3.0 • Public • Published

    koa-geo-ip

    Uses ip to geolocate requests

    Getting Started

    npm i koa-geo-ip
    

    Example

    Example using as koa middleware

    var app = require( 'koa' )();
    var geo = require( 'koa-geo-ip' );
     
    app.use( geo() );
     
    app.use( function* () {
      this.body = this.geo;
    });
     
    app.listen( 3000 );

    Example using co to access the generator

    var co = require( 'co' );
    var geoip = require( 'koa-geo-ip' );
    var geolocate = geoip();
     
    co( function *() {
      var location = {
        ip: '8.8.8.8'
      };
      yield gg.call( location );
      return location.geo;
    })
      .then( function( loc ) {
        console.log( loc );
      });

    Result (excerpt)

    {
      country: {
        geoname_id: 6252001,
        iso_code: 'US'
      }
    }

    Running the examples

    You’ll be needing the db, there’s a script included for that

    npm run geoip
    
    node examples/co.js
    node examples/koa.js
    

    API

    Options

    db <String> path to the MaxMind GeoLite2 database

    The db path can also be specified using the package.json, see this repo’s package for an example. Both the install script and the module will use the package info if run via npm, otherwise specify the path.

    Install Script

    Included is a quick script to download the database, by default it’ll use the path specified in the package.json if run via npm, use --db to specify a path.

    node bin/geoip --db path/to/db specify a path node bin/geoip --update will force a db update

    License

    WTFPL

    Copyright (c) 2015, Matt Styles

    This product includes GeoLite2 data created by MaxMind, available from http://www.maxmind.com

    Install

    npm i koa-geo-ip

    DownloadsWeekly Downloads

    13

    Version

    0.3.0

    License

    WTFPL

    Last publish

    Collaborators

    • mattstyles