될때까지

((기업협업3)) node.js + mysql + CRUD 특정 유저 수정 본문

프로젝트/wecode : 기업협업

((기업협업3)) node.js + mysql + CRUD 특정 유저 수정

랖니 2022. 8. 18. 22:17
728x90

업데이트된 데이터 반환 어떻게 할까? (미해결)

특정 유저 정보를 수정하려면, where절을 사용한 update를 사용하면 될거라 생각했다. 그래서 코드를 아래와 같이 작성했는데

router.post("/:userId", async(req, res, next) => {
    try {

        const sql            = `UPDATE users SET name = '${req.body.name}', age='${req.body.age}' WHERE user_id = '${req.params.userId}'`
        const [rows, fields] = await db.query(sql)
        console.log('rows', rows.affectedRows)
        console.log('fields', fields)
        return res.status(200).json({ message: "success", result: rows});

    } catch(e) {
        console.log(e.message);
    }
})

포스트맨으로 테스트를 해봤더니 rows에 수정된 데이터가 안담긴다.

내가 원한 결과가 아니야!

 

그래서 구글링 을 했다. 하라는 대로 작성하면 코드가 아래처럼 된다.

 query에 sql말고 함수를 넣어줘서 result의 affectedRows를 사용했다.

// 특정 유저 정보 수정하기
router.post("/:userId", async(req, res, next) => {
    try {

        const sql            = `UPDATE users SET name = '${req.body.name}', age='${req.body.age}' WHERE user_id = '${req.params.userId}'`
        const [rows, fields] = await db.query(sql, (err, result) => {
            if (err) throw err;
            return res.status(200).json({ message: "updated", result: result.affectedRows});

        });
        // console.log('rows', rows.affectedRows)
        // console.log('fields', fields)
        // return res.status(200).json({ message: "success", result: rows});

        //   var sql = "UPDATE customers SET address = 'Canyon 123' WHERE address = 'Valley 345'";
        //   con.query(sql, function (err, result) {
        //     if (err) throw err;
        //     console.log(result.affectedRows + " record(s) updated");


    } catch(e) {
        console.log(e.message);
    }
})

그랬던 만난 에러 ^^

이 역시 모르겠다.. 지금 나의 단계에서 해결할 수 없는 문제다. 자바스크립트 문법도 다 이해하지 못했는데 무리데스!!

그래서 그냥 수정됐다는 결과를 console에만 찍어주고 객체를 반환하지 않게 코드를 마무리지었다.

DB에도 잘 반영이 되어있다.

 

뚱땅뚱땅 CRUD의 U까지 마무리 ?

728x90