Express - 请求Index.html时访问客户端的IP

时间:2016-11-18 21:24:28

标签: node.js express

我通过以下方式向客户端提供服务静态文件:

app.use(express.static('public'));

我想根据index.html(位于公共文件夹中)的请求访问客户端的IP地址。是否可以通过自定义express.static方法来完成此操作?如果是这样,怎么样?如果不是,那么最好的方法是什么?

编辑:如果客户端不允许/不支持HTML5 Geolocation API,我需要将其作为后备。 IP地址被发送到1 API,从该API接收经度和纬度位置。然后,将经度和纬度发送到第二个API,以接收对我正在构建的应用程序至关重要的数据。然后,这些数据将提供给客户。

1 个答案:

答案 0 :(得分:1)

您可以使用req.ip获取远程IP地址:

req.ip
// => "127.0.0.1"

来自文档:http://expressjs.com/en/api.html#req.ip

只需创建一个中间件,在静态路由之前处理请求,并在结束时调用next()

app.use(function (req, res, next) {
  console.log(req.ip);
  next();
});

app.use(express.static('public'));