服务端通过request向豆瓣api请求详细数据

2018-08-22  本文已影响0人  noyanse

request的上层封装,用了原生的promise,对callback形式的request做了封装
可以支持await直接调用,可以像豆瓣api发起一个服务端的请求,拿到这个就可以与之前的数据进行组装
request-promise-nativerequest都要安装一下

// 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)
        }
    })
})()


//转存到服务器上,不要商业使用,可能涉及到知识产权
上一篇下一篇

猜你喜欢

热点阅读