首页 > 解决方案 > 如何在 node.js 中使用 node-geocoder 和代理?

问题描述

我的node.js服务器在 vm 上运行,上面有一个代理。现在我用这样的node-geocoder方式得到lat lngnode-geocoder

const NodeGeocoder = require('node-geocoder');
var geocoder = NodeGeocoder(constants.config.geocoderOptions);


const geoCodeAddress = await geocoder.geocode(address.location);

现在由于这样的代理而引发错误

 'request to https://maps.googleapis.com/maps/api/geocode/json?sensor=false&key=my-key&address=Korangi%20Creek failed, reason: getaddrinfo ENOTFOUND maps.googleapis.com maps.googleapis.com:443'

那么我怎样才能传递我的代理设置node-geocoder呢?

标签: node.jsexpressgeocoder

解决方案


在您的 NodeGeocoder 选项中使用:

httpAdapter: "request"

这不是文档中列出的httpor选项。https

参考:https ://github.com/nchaulet/node-geocoder/issues/190

此答案假定您已经在标准设置中设置了代理变量(因此curl example.com从终端返回预期输出)。如果您没有设置代理环境变量,则需要先配置它。


推荐阅读