Fastify plugin for Geocodio API integration with address geocoding and reverse geocoding.
A lightweight Fastify plugin for Geocodio API integration. Provides convenient methods for geocoding addresses and retrieving geographic coordinates.
- ✅ Easy Geocodio API integration
- ✅ Get latitude/longitude from zip codes
- ✅ Retrieve address components (city, county, state, country)
- ✅ Optional plugin (can be disabled)
- ✅ Error handling with detailed logging
- ✅ Fastify 5.x compatible
``bash`
npm install @xenterprises/fastify-xgeocode
`javascript
import Fastify from 'fastify';
import xGeocode from '@xenterprises/fastify-xgeocode';
const fastify = Fastify();
fastify.register(xGeocode, {
apiKey: process.env.GEOCODIO_API_KEY
});
await fastify.listen({ port: 3000 });
`
`javascript`
fastify.get('/location/:zip', async (request, reply) => {
const { zip } = request.params;
const location = await fastify.geocode.getLatLongByZip(zip);
return location;
});
`javascript
fastify.register(xGeocode, {
// Required: Geocodio API key
apiKey: process.env.GEOCODIO_API_KEY,
// Optional: Enable/disable plugin (default: true)
active: true
});
`
`javascript`
const location = await fastify.geocode.getLatLongByZip('10001');
console.log(location);
// {
// zip: '10001',
// lat: 40.7506,
// lng: -73.9972,
// city: 'New York',
// county: 'New York County',
// state: 'NY',
// country: 'US',
// addressComponents: { ... }
// }
`javascript`
fastify.get('/geo/:zip', async (request, reply) => {
try {
const data = await fastify.geocode.getLatLongByZip(request.params.zip);
return { success: true, data };
} catch (error) {
reply.status(400);
return { success: false, error: error.message };
}
});
`bash`
GEOCODIO_API_KEY=your_api_key_here
Gets geographic coordinates and address components for a zip code.
Parameters:
- zipCode (string) - The zip code to geocode
Returns:
- Promise resolving to an object with:
- zip - Input zip codelat
- - Latitudelng
- - Longitudecity
- - City namecounty
- - County namestate
- - State codecountry
- - Country codeaddressComponents` - Full address component object
-
Throws:
- Error if no results found
- Error if API call fails
ISC