Uses ip to geolocate requests
npm i koa-geo-ip
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 );
});{
country: {
geoname_id: 6252001,
iso_code: 'US'
}
}You’ll be needing the db, there’s a script included for that
npm run geoip
node examples/co.js
node examples/koa.js
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.
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
WTFPL
Copyright (c) 2015, Matt Styles
This product includes GeoLite2 data created by MaxMind, available from http://www.maxmind.com