
228
|
第
19
章
})
const vacations = await fetch('/api/vacations').then(res => res.json())
vacations.forEach(({ name, location }) => {
const marker = new google.maps.Marker({
position: location.coordinates,
map,
title: name,
})
})
}
现在就有了一张可以把所有的度假地点都显示出来的地图了!完善这个页面有很多种方
法。最好的起点,大概就是给这些大头针标记加上到度假产品详情页的链接,这样点击一
个标记就可以转到详情页。也可以实现定制的标记或提示信息。谷歌地图
API
有大量的特
性,你可以通过它的官方文档来进一步学习。
19.3
天气数据
还记得第
7
章中的“当前天气”组件吗?现在,使用动态数据让它运行起来。我们将使用
“全美天气服务”(
NWS
)
API
来获取天气预报
。正如
Twitter
集成和对地理编码的使用,我
们会把预报信息缓存起来,避免每次访问网站都向
NWS
发出请求
(如果网站变得很受欢
迎,那么这样向
NWS
发送请求会让网站进入黑名单)
。创建一个名为
lib/weather.js
的文件:
const https = require('https')
const { URL } = require('url')
const _fetch = url => new Promise((resolve, ...