Cloudflare Docs
Workers
Visit Workers on GitHub
Set theme to dark (⇧+D)

Geolocation: Hello World

Get all geolocation data fields and display them in HTML.
addEventListener('fetch', event => {
  event.respondWith(handleRequest(event.request));
});

async function handleRequest(request) {
  let html_content = '';
  let html_style = 'body{padding:6em; font-family: sans-serif;} h1{color:#f6821f;}';

  html_content += '<p> Colo: ' + request.cf.colo + '</p>';
  html_content += '<p> Country: ' + request.cf.country + '</p>';
  html_content += '<p> City: ' + request.cf.city + '</p>';
  html_content += '<p> Continent: ' + request.cf.continent + '</p>';
  html_content += '<p> Latitude: ' + request.cf.latitude + '</p>';
  html_content += '<p> Longitude: ' + request.cf.longitude + '</p>';
  html_content += '<p> PostalCode: ' + request.cf.postalCode + '</p>';
  html_content += '<p> MetroCode: ' + request.cf.metroCode + '</p>';
  html_content += '<p> Region: ' + request.cf.region + '</p>';
  html_content += '<p> RegionCode: ' + request.cf.regionCode + '</p>';
  html_content += '<p> Timezone: ' + request.cf.timezone + '</p>';

  let html = `<!DOCTYPE html>
<head>
  <title> Geolocation: Hello World </title>
  <style> ${html_style} </style>
</head>
<body>
  <h1>Geolocation: Hello World!</h1>
  <p>You now have access to geolocation data about where your user is visiting from.</p>
  ${html_content}
</body>`;

  return new Response(html, {
    headers: {
      'content-type': 'text/html;charset=UTF-8',
    },
  });
}