TypeError:无法读取NODEJS中未定义的属性“ 0”

时间:2018-12-28 12:12:47

标签: javascript node.js

我是编程和使用JavaScript的新手。我正在尝试在控制台上输出请求的结果,但它总是抛出错误。我正在从视频中观看,对于教师而言,效果很好。我究竟做错了什么?请保释我。 注意:不是真实密钥

request({
   url: 'https://maps.googleapis.com/maps/api/geocode/json?address=Lagos+Nigeria&key=AIzaSyCGv0HDQB2dhHl6mY29PwqXAavIK3U',
   JSON: true
}, (error, response, body) => {
    console.log(`Address: ${body.results[0].formatted_addresss}`);
    console.log(`Latitude: ${body.results[0].geometry.location.lat}`);
    console.log(body.results[address_components]);
});

2 个答案:

答案 0 :(得分:0)

尝试将参数“ body”更改为“ response”

request({
   url: 'https://maps.googleapis.com/maps/api/geocode/json?address=Lagos+Nigeria&key=AIzaSyCGv0HDQB2dhHl6mY29PwqXAavIK3U',
   JSON: true
}, (error, response, body) => {
console.log(`Address: ${response.results[0].formatted_addresss}`);
console.log(`Latitude: ${response.results[0].geometry.location.lat}`);
});

也许你里面什么都没有

答案 1 :(得分:0)

您的代码可能是正确的,但不是“保存”。

您的特定问题是,您指定为Public Function addieren(X, Y, Z, value) As Double ' function to calculate three results ' and to write these in three fields starting with ' the field calling the macro Xa = X + value Ya = Y + value Za = Z + value addieren = Za End Function 参数的API密钥无效。如果将URL粘贴到浏览器中并按Enter,您将看到以下响应:

key

我的猜测是,您从辅导员视频中复制了API密钥。在这种情况下,它现在可能无效。您应该request your own key,然后重试。


关于未保存代码部分:您的代码错误地认为该请求将始终返回您期望的数据。在这种情况下,它不会(因为有错误)。收到的数据看起来不像您的程序期望的那样,因此会崩溃。

为避免这种情况并有更具体的错误消息,请检查结果是否确实像您期望的那样。例如:

{
   "error_message" : "The provided API key is invalid.",
   "results" : [],
   "status" : "REQUEST_DENIED"
}

API文档将告诉您在(error, response, body) => { if (response.statusCode >= 200 && response.statusCode < 300) { // HTTP Status code indicates success if (body.status === "OK") { console.log(`Address: ${body.results[0].formatted_addresss}`); console.log(`Latitude: ${body.results[0].geometry.location.lat}`); console.log(body.results[address_components]); } else { // API-specific error. Check documentation for more info } } else { // The request was successful but the server responded with an error. Handle it! } }; 字段中会有什么期望以及如何处理不同的情况。