• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

백엔드에서 데이터 가져오기 질문드립니다.

21.01.29 11:30 작성 조회수 538

0

상세데이터를 가져오기 위해 백엔드를 아래와같이 작성하고

app.get('/api/product/products_by_id', (req, res) => {
    //let type = req.query.type
    let productId = req.query._id
    Product.find({ _id: productId })
        .exec((err, product) => {
            if(err) return res.status(400).send(err)
            return res.status(200).send({success:true, product})
        })
})

디테일 페이지는 이렇게 썼는데요.

import React, {useEffect, useState} from 'react';
import axios from 'axios';

function DetailProductPage(props) {
    const productId = props.match.params.productId
    const [Product, setProduct] = useState([]);
    useEffect(() => {
        axios.get(`/api/product/products_by_id?id=${productId}&type=single`)
            .then(response => {
                if(response.data.success){
                    console.log(response.data)
                    //setProduct(response.data.proudct[0])
                } else {
                    alert('상세 정보 가져오기 실패했습니다.')
                }
            })
    }, [])

콘솔을 확인해보니

productId도 잘 받아오고

response.data도 success:true는 뜹니다.

하지만 product는 Array(0)으로 나오면서 데이터를 불러오질 못하네요.

서버연결은 되는데 데이터를 못불러오는데 이럴 경우 어디를 수정해야할까요?

답변 1

답변을 작성해보세요.

2

안녕하세요 ethian 님   

            return res.status(200).send({success:true, product})

 

여기서 send를 json으로 바꿔주세요 ~!! 수고하세요 ~!