我正在尝试通过回调函数使用我的 Node 服务器连接到 Google Directions API,但由于某种原因我无法从 Google API 获得响应。有趣的是,几天前我就开始工作了,但我设法打破了它。我的 Controller 包含以下代码 - 调用 google_api.js 中的函数:
var google = require('../scripts/google_api')
var inputs = {
origin: "1600 Amphitheatre Parkway, Mountain View, CA",
destination: "1 Infinite Loop, Cupertino, CA 95014, USA",
mode: "driving",
};
function getDirections(data, callback){
console.log("First");
callback(data);
console.log("Second");
};
getDirections(inputs, google.directions);
我的 google_api.js 文件包含以下代码(带有有效的 API key ):
var googleMapsClient = require('@google/maps').createClient({
key: 'XXX'
});
module.exports.directions = (req, res) => {
console.log(req);
googleMapsClient.directions({
origin: req.origin,
destination: req.destination,
mode: req.mode,
}, function(err, response) {
if (!err) {
console.log(response.json.results);
};
});
};
console.log("First")、console.log("Second") 和 console.log(req) 均按预期运行,因此问题必定存在于 googleMapsClient.directions() 函数内。 API key 经过测试并可与另一个前端 JS 函数配合使用,因此 key 不存在问题。我设法让该函数输出一次错误,并出现 EHOSTUNREACH 错误,但复制此错误并不一致。我担心我错过了一些非常基本的东西,以至于我什至不知道从哪里开始。任何帮助都会很棒!谢谢
最佳答案
**
Asked long time ago, just posting a working code if anybody comes across and want to implementing this google api.
**
var googleMapsClient = require('@google/maps').createClient({
key: xxxxxxxxxx
});
function getDirections (req, callback) {
googleMapsClient.directions({
origin: req.origin,
destination: req.destination,
mode: req.mode,
}, function(err, response) {
console.log(err);
console.log(response);
if (!err) {
callback(response.json.results);
};
});
};
var inputs = {
origin: "1600 Amphitheatre Parkway, Mountain View, CA",
destination: "1 Infinite Loop, Cupertino, CA 95014, USA",
mode: "driving",
};
getDirections(inputs, function(result){
console.log("Response: ", result)
});
关于javascript - 无法使用 Node.js 服务器连接到 Google Directions API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42379054/