JSPM

node-where

1.1.0
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 89
  • Score
    100M100P100Q59656F
  • License MIT

A very simple geolocation library in node.js

Package Exports

  • node-where

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (node-where) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

node-where

Dependency Status

A basic geolocation library for node.js.

Uses freegeoip.net and the Google Maps Geocoding API

Installation

npm install node-where --save

Usage

Where can search by Postal Address, landmark or IP Address:

Search by Postal Address:

var where = require('node-where');

where.is('4 yawkey way boston ma', function(err, result) {
  if (result) {
    console.log('Address: ' + result.get('address'));
    console.log('Street Number: ' + result.get('streetNumber'));
    console.log('Street: ' + result.get('street'));
    console.log('Full Street: ' + result.get('streetAddress'));
    console.log('City: ' + result.get('city'));
    console.log('State / Region: ' + result.get('region'));
    console.log('State / Region Code: ' + result.get('regionCode'));
    console.log('Zip: ' + result.get('postalCode'));
    console.log('Country: ' + result.get('country'));
    console.log('Country Code: ' + result.get('countryCode'));
    console.log('Lat: ' + result.get('lat'));
    console.log('Lng: ' + result.get('lng'));
  }
});

Search by Landmark:

var where = require('node-where');

where.is('Fenway Park', function(err, result) {
  if (result) {
    // Same result as address search
    // ...
  }
});

Search by IP Address (both IPv4 and IPv6):

var where = require('node-where');

where.is('173.194.33.104', function(err, result) {
  if (result) {
    console.log('City: ' + result.get('city'));
    console.log('State / Region: ' + result.get('region'));
    console.log('State / Region Code: ' + result.get('regionCode'));
    console.log('Zip: ' + result.get('postalCode'));
    console.log('Country: ' + result.get('country'));
    console.log('Country Code: ' + result.get('countryCode'));
    console.log('Lat: ' + result.get('lat'));
    console.log('Lng: ' + result.get('lng'));
  }
});

NOTE: IP address lookups do not include any street address information.

Usage as Express middleware:

var where = require('node-where');

app.use(function(req, res, next) {
  where.is(req.ip, function(err, result) {
    req.geoip = result;
    next();
  });
});

Testing

Run the spec suite by running:

npm test