googlemaps / googlemaps/google-maps-services-js

Issue getting an unambiguous error message from Node.js Client for Google Maps Services

Open
#952 2 comments 0 reactions 1 assignee Claimed by @wangela View on GitHub
priority: p2 type: bug
Dominant language
TypeScript
Stars
3.1k
Forks
654
Avg merge
3m
Merged PRs (30d)
4

Description

#### Environment details

1. Using the Directions API
2. Windows 11 Version 22H2
3. @googlemaps/google-maps-services-js@3.3.27

#### Steps to reproduce

I am trying to use the Google Maps Directions API in my Node.js application to get optimized routes between multiple waypoints. I haven't been able to make successful requests and receive responses using the API, and the problem is I can't debug the problem because I am getting an error that I can't get to be specific.

my client object looks like this:
```js
client
.directions({
params: {
origin: origin, //{placeId:"ChIJdd4hrwug2EcRmSrV3Vo6llI"},
destination: destination, //{placeId: "ChIJh1a5WhEMa0gRY1JU4PEam8Q"},
waypoints: waypts,
optimize: true,
mode: 'driving',
key: process.env.GOOGLE_MAPS_API_KEY
},
timeout: 1000, // milliseconds
})
.then((r) => {
console.log("got r")
const routeOrder = r.data.routes[0].waypoint_order;
for(let i = 0; i < reqList.length; i++){
reqList[i] = reqList[i].replaceAll(' ', '+');
}
const n = reqList.length
reorder(reqList, routeOrder, n)
console.log(reqList)
})
.catch((e) => {
console.log('Directions request failed due to ' + e);
});

});
```
and origin, destination and waypts looks like this
```js
"50 Madeleine St, Kitchener, ON N2R 1V4, Canada"
"Lola, 4th Avenue, Seattle, WA, USA"
[
{ location: '"New York, NY, USA"', stopover: true },
{ location: '"Vancouver, BC"', stopover: true },
{ location: '"Port Angeles, WA, USA"', stopover: true }
]
```
I've shown my whole client object with the try-catch; I suspect I don't know how to properly catch the Error because what I get is (Directions request failed due to Error).

At the GitHub for the NodeJS client for Maps API: https://github.com/googlemaps/google-maps-services-js/blob/master/README.md You can see in the quick start they want to log the error message like this e.response.data.error_message but when I try to do it that way I get console.log('Directions request failed due to ' + e.response.data.error_message);TypeError: Cannot read properties of undefined (reading 'data')

So I think there is a bug in how to get an actual helpful error code. I also tried looking into the props of the error object and went down e.config.data as that seemed the closest, but e.config.data returns undefined and has no further properties like an error_message prop.

#### Stack trace
```
console.log('Directions request failed due to ' + e.data.error_message);
^

TypeError: Cannot read properties of undefined (reading 'error_message')
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.