服务端通过request向豆瓣api请求详细数据
2018-08-22 本文已影响0人
noyanse
request的上层封装,用了原生的promise,对callback形式的request做了封装
可以支持await直接调用,可以像豆瓣api发起一个服务端的请求,拿到这个就可以与之前的数据进行组装
request-promise-native
和 request
都要安装一下
// http://api.douban.com/v2/movie/subject/1764796
const rp = require('request-promise-native')
async function fetchMovie(item) {
const url = `http://api.douban.com/v2/movie/subject/${item.doubanId}`
const res = await rp(url)
return res
}
;(async () => {
//刚刚在movie.js中起了个子进程,拿到了爬到的数据
let movies = [
{ doubanId: 26985127,
title: '一出好戏',
rate: 7.3,
poster: 'https://img3.doubanio.com/view/photo/l_ratio_poster/public/p2529571873.jpg'
},
{ doubanId: 30215922,
title: '花之屋',
rate: 7.1,
poster: 'https://img1.doubanio.com/view/photo/l_ratio_poster/public/p2531109949.jpg'
},
{ doubanId: 26426194,
title: '巨齿鲨',
rate: 6.1,
poster: 'https://img3.doubanio.com/view/photo/l_ratio_poster/public/p2530572643.jpg'
}
]
//遍历这个movies数组
movies.map(async movie => {
let movieData = await fetchMovie(movie)
try {
movieData = JSON.parse(movieData)
console.log(movieData.summary)
} catch (err){
console.log(err)
}
})
})()
//转存到服务器上,不要商业使用,可能涉及到知识产权