You're passing your errors back to your callbacks nicely but you don't seem to be doing anything with them? Functions like processWeather take an error parameter but then just ignore it.
Also when you're passing your error back here you might want to pass something useful back to the callback in the case of a bad status code.
If there is no error but the statusCode is something other than 200, the callback will just be passed undefined as an error, which is falsy - so the callback would think there was no error.
You're passing your errors back to your callbacks nicely but you don't seem to be doing anything with them? Functions like processWeather take an error parameter but then just ignore it.
Also when you're passing your error back here you might want to pass something useful back to the callback in the case of a bad status code.
If there is no error but the statusCode is something other than 200, the callback will just be passed
undefined
as an error, which is falsy - so the callback would think there was no error.