如何在express Js中获取客户的国家?

Rag*_*iam 7 node.js express

如何在express JS中获取客户正确的国家名称或电话代码?

Cyb*_*nal 12

您可以尝试通过IP获取请求的国家。查看 NPM 包geoip-lite。其实类似这样的包还有很多。

这是一个实现的例子

const express = require('express');
const app = express();
const { lookup } = require('geoip-lite');
const router = express.Router();

router.get('/someroute', (req,res) => {
  const ip = req.headers['x-forwarded-for'] || req.connection.remoteAddress;
  console.log(ip); // ip address of the user
  console.log(lookup(ip)); // location of the user
});

app.use('/', router);
app.listen(5000);
Run Code Online (Sandbox Code Playgroud)

结果console.log(lookup(ip));看起来像

{ range: [ 3479298048, 3479300095 ],
  country: 'US',
  region: 'TX',
  eu: '0',
  timezone: 'America/Chicago',
  city: 'San Antonio',
  ll: [ 29.4969, -98.4032 ],
  metro: 641,
  area: 1000 }
Run Code Online (Sandbox Code Playgroud)

重要提示:坐标可能是操作员的大致位置,而不是特定设备