diff --git a/server/controllers/review.controller.js b/server/controllers/review.controller.js index 41d16caffa2c75219f8a6658846620ebb05ed479..2e1fa1ceb16122a4e7d068bc9598556b7c0d4d67 100644 --- a/server/controllers/review.controller.js +++ b/server/controllers/review.controller.js @@ -8,26 +8,33 @@ import { nextTick } from 'process'; const Iconv = iconv.Iconv const search = async (req, res, next) => { - // const url = "https://www.google.com/search?q=" + encodeURI(req.params.search) + "+site%3Atistory.com&page_no=1" try { - const url = "https://www.google.com/search?q=kakao+site%3Atistory.com&page_no=1" let reviews = [] + let content = [] + const url = "https://www.google.com/search?q=" + encodeURI(req.params.search) + "+site%3Atistory.com&page_no=1" const response1 = await axios.get(url) + // console.log(response1.data) const $1 = cheerio.load(response1.data); $1('.kCrYT').each(async function (i) { - const searchParams = new URLSearchParams($1(this).find('a').attr('href')); const title = $1(this).find('h3').text() + const searchParams = new URLSearchParams($1(this).find('a').attr('href')); const link = searchParams.get("/url?q") const summary = $1(this).find('.s3v9rd').find('.s3v9rd').text() - const content = await getReview(link) + content.push(getReview(title, link, summary)) if (title) { - reviews[i] = { title: title, link: link, content: content } + reviews[i] = { title: title, link: link } } else if (summary) { reviews[i - 1] = { ...reviews[i - 1], summary: summary } reviews = reviews.filter(e => e) } - // const review = new Review(reviews).save() }) + const promiseReview = await Promise.all(content) + reviews.forEach((review, i) => { + review["content"] = promiseReview[i] + }) + // reviews = { ...reviews, ...promiseReview } + console.log("reviews", reviews) + // console.log(promiseReview) res.send(reviews) } catch (error) { console.log(error) @@ -35,14 +42,15 @@ const search = async (req, res, next) => { } } -const getReview = async (link) => { +const getReview = async (title, link, summary) => { let content = '없음' - const res = await axios.get(link) - const $2 = cheerio.load(res.data); - if ($2('.tt_article_useless_p_margin').text()) { - content = $2('.tt_article_useless_p_margin').text() + if (link) { + const res = await axios.get(link) + const $2 = cheerio.load(res.data); + if ($2('.tt_article_useless_p_margin').text()) { + content = $2('.tt_article_useless_p_margin').text() + } } - // console.log(content,"getReiview") return content }