node.js 에서 mysql 테이블을 다중 렌더링 하려고 합니다...
조회수 2868회
안녕하세요
read라는 페이지 내에서 sql 테이블 하나를 불러오고 하나 더 불러오려고 하는데,
도저히 방법을 모르겠습니다.
코딩은 아래와 같습니다.
router.get('/read/:idx',function(req,res,next) {
var idx = req.params.idx;
pool.getConnection(function (err, connection) {
var sql = "select idx, creator_id, title, content, date_format(modidate,'%Y-%m-%d %H:%i:%s') modidate, hit from board where idx = ?";
connection.query(sql, [idx], function (err, row) {
if (err) console.error(err);
console.log("row : " + JSON.stringify(row));
// 조회수 값
var hit = req.body.hit;
// 조회수 값 수정
var sql = 'update board set hit = hit + 1 where idx = ?';
connection.query(sql, [idx, hit], function (err, result) {
console.log(result);
});
res.render('read', {title: 'test', row: row[0]});
var sql2 = "select id, m_id, m_name, m_tel, m_date, m_gender, m_email, m_int, m_hello, m_file from users";
connection.query(sql2, function (err, rows) {
if (err) console.error("err : " + err);
console.log("rows : " + JSON.stringify(rows));
res.render('read', {title: 'test', rows: rows[0]});
});
connection.release();
});
});
});
res.render('read', {title: 'test', row: row[0]});
제가 이 부분을 통해서 read 페이지로 다시 랜더링을 하려고 하는데요.
첫번째 테이블인 board를 row로 줘서 가져오는데는 성공을 했으나, 두번째 테이블인 users는 rows 로 렌더링 해줬는데, 자꾸 에러가 납니다.
에러 내용은 rows 가 정의되지 않았다고 하구요...
분명 렌더링을 해줬는데 이와 같이 문제가 나는 이유를 모르겠습니다.
도와주세요 ㅠㅠ
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
제가 알기론 res.render는 2번이상은 안되는걸로 알고있습니다.
코드를 비동기로 만드신후 res.render 할때 row와 rows를 같이 보내야 할것 같습니다
var idx = req.params.idx; pool.getConnection(function (err, connection) { var sql = "select idx, creator_id, title, content, date_format(modidate,'%Y-%m-%d %H:%i:%s') modidate, hit from board where idx = ?"; connection.query(sql, [idx], function (err, row) { if (err) console.error(err); console.log("row : " + JSON.stringify(row)); var hit = req.body.hit; var sql = 'update board set hit = hit + 1 where idx = ?'; var sql2 = "select id, m_id, m_name, m_tel, m_date, m_gender, m_email, m_int, m_hello, m_file from users"; connection.query(sql, [idx, hit], function (err, result) { console.log(result); connection.query(sql2, function (err, rows) { if (err) console.error("err : " + err); console.log("rows : " + JSON.stringify(rows)); res.render('read', {title: 'test', row:row[0], rows: rows[0]}); }); connection.release(); }); }); });
급하게 적느라 틀린게 있을수도 있지만 이렇게 비동기로 만들어 주셔야합니다
그리고 제일마지막에
res.render('read', {title: 'test', row:row[0], rows: rows[0]});
이렇게 같이 보내주시면 될것 같습니다
-
(•́ ✖ •̀)
알 수 없는 사용자
-
댓글 입력