JEoN-Ha / Senior-Project

4학년 졸업작품
MIT License
1 stars 3 forks source link

라우터 코드 수정 #97

Closed dkfma4915 closed 3 years ago

dkfma4915 commented 3 years ago

저번에 말했던대로 baskettable의 basketMenuNo를 이용해서 menuboard의 price와 FoodNameKor를 불러오고싶어서 수정한 코드입니다! router에서 menuboard 불러오는 sql 코드를 작성했는데 불러와지지가 않더라고.. 그래서 어느 부분이 잘못된건지 혹시 봐줄 수 있어??

select * from menuboard where (MenuNo = ${allBasketData.BasketMenuNo}) 에서 ${allBasketData.BasketMenuNo}랑 MenuNo가 같다는 조건을 이용하는거 맞지 않나???

fora22 commented 3 years ago

일단 router 쪽에 console.log(allBasketData);console.log(allBasketMenuData);로 찍어서 어떻게 나오는지 봐야할듯?

지금 서버쪽 아이디 로그인 해보고 있는데, 비번이 다르다고 뜨네? 다시 알려주삼!

dkfma4915 commented 3 years ago

일단 router 쪽에 console.log(allBasketData);console.log(allBasketMenuData);로 찍어서 어떻게 나오는지 봐야할듯?

지금 서버쪽 아이디 로그인 해보고 있는데, 비번이 다르다고 뜨네? 다시 알려주삼!

아 그거 찍어봤는데 allBasketData는 DB에 있는거 나오고 allBasketMenuData는 undefined로 나와! 비번 Jeonha12#

fora22 commented 3 years ago

원인에 대하여

일단 문제는 두번째 db.query에서 sql 코드가 조금 문제가 있음

문제인즉슨 rows로 들어오는 데이터가 [{}, {}, ...] 이 형태인데 두번째 sql 코드에서 MenuNo = ${allBasketData.BasketMenuNo}라고 해버리니까 BasketMenuNo를 인식못함 그래서 내가 제안하는 방법은 다음과 같음

제안 내용

첫번째 db.query 아이디에 해당되는 Basket정보는 다 들어옴.

그러므로 for문으로 db.queryallBasketData 의 길이만큼 돌려서 데이터를 한곳에 모으고 그것을 res.json()으로 보내면 될듯!!

router.post('/getBasket', (req, res) => {
    const userwebid = `'${req.body.userWebId}'`;

    const sqlCodeToBasketTable = `
    select * from baskettable
    where (BasketId = ${userwebid} and
        BasketState = 0);`;

    db.query(sqlCodeToBasketTable, (err, rows) => {
        const allBasketData = JSON.parse(JSON.stringify(rows));
        let allBasketMenuData = [];

        console.log(allBasketData.BasketMenuNo);

        for (let i = 0; i < allBasketData.length; i++) {
            const sqlCodeToMenuboard = `
            select * from menuboard where (MenuNo = ${allBasketData[i].BasketMenuNo});`;
            db.query(sqlCodeToMenuboard, (err, results) => {
                let basketMenuData = JSON.parse(JSON.stringify(results)); 
                // basketMenuData 는 [{}] 꼴이기 때문에 0번째 원소를 넣어주면 됨
                allBasketMenuData.push(basketMenuData[0]); 
            })

        }

    })

})