所以我前段时间一直在 Treehouse 进行这个练习,然后继续前进。现在我又回到了它,因为我对事情有了更好的理解,而且我仍在与 wunderground api 作斗争。我已经通读了 json 数据和文档,从第一次记录类时更新了一些内容(并且从那时起更新了 API),但仍然遇到我无法解决的错误。我有三个 js 文件——app.js、weather.js 和 api.json(这只是我的 api 密钥,所以这里不共享。)
在我更正之后,我仍然收到错误“TypeError:无法读取未定义的属性'temp_f'”,这没有意义,因为我继续阅读 JSON 以检查它是否指向正确的位置。
谁能结束我试图解决这个问题的痛苦?
应用程序.js:
const weather = require('./weather');
//Join multiple values passed as arguments and replace all spaces with underscores
const query = process.argv.slice(2).join("_").replace(' ', '_');
//query: 90201
//query: Cleveland_OH
//query: London_England
weather.get(query);
天气.js
const https = require('https');
const http = require('http');
const api = require('./api.json');
// Print out temp details
function printWeather(weather) {
const message = `Current temp in ${weather.location} is ${weather.current_observation.temp_f}F`;
console.log(message);
}
// Print out error message
function get(query) {
const request = http.get(`http://api.wunderground.com/api/${api.key}/conditions/q/${query}.json`, response => {
let body = "";
// Read the data
response.on('data', chunk => {
body += chunk;
});
response.on('end', () => {
//Parse data
const weather = JSON.parse(body);
//Print the data
printWeather(weather);
});
});
}
module.exports.get = get;
//TODO: Handle any errors