我通过以下方式向客户端提供服务静态文件:
app.use(express.static('public'));
我想根据index.html(位于公共文件夹中)的请求访问客户端的IP地址。是否可以通过自定义express.static
方法来完成此操作?如果是这样,怎么样?如果不是,那么最好的方法是什么?
编辑:如果客户端不允许/不支持HTML5 Geolocation API,我需要将其作为后备。 IP地址被发送到1 API,从该API接收经度和纬度位置。然后,将经度和纬度发送到第二个API,以接收对我正在构建的应用程序至关重要的数据。然后,这些数据将提供给客户。
答案 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'));