const postDetail = (req, res) => {
    let ip = requestip.getClientIp(req);
    const params = [req.params.id, ip]

    db.query('select * from user_ip where post = ?', [req.params.id], (err, rows) => {
        if(err) throw err;

        const ip_list = [];
        for(let i = 0; i < rows.length; i++) {
            ip_list.push(rows[i].ip);
            if(ip === ip_list[i]) {
                db.query(
                    `select *, (select count(id) from reply where post = post.id) reply_count,
                    (select count(id) from post_like where post = post.id) post_like
                    from post where id = ?`,
                    [req.params.id], (err, rows) => {
                    if(err) throw err;
                    res.json(rows[0]);
                });
            } else {
                db.query('insert into user_ip(post, ip) values(?, ?)', params, (err) => {
                    if(err) throw err;

                    db.query('update post set view_count = (select count(id) from user_ip where post = post.id) where id = ?', [req.params.id], (err) => {
                        if(err) throw err;
               
                        db.query(
                            `select *, (select count(id) from reply where post = post.id) reply_count,
                            (select count(id) from post_like where post = post.id) post_like
                            from post where id = ?`,
                            [req.params.id], (err, rows) => {
                            if(err) throw err;
                            res.json(rows[0]);
                        });
                    });
                });
            }
        }
    });
};


초보입니다