PGR21.com
- PGR21 관련된 질문 및 건의는 [건의 게시판]을 이용바랍니다.
- (2013년 3월 이전) 오래된 질문글은 [이전 질문 게시판]에 있습니다.
통합 규정을 준수해 주십시오. (2015.12.25.)
Date 2016/12/06 20:50:27
Name Patrick Jane
Subject [질문] node.js 질문입니다!
node.js를 이용해서 피시방 또는 가게안의 자리를 볼 수 있는 웹페이지를 만들고있습니다.

우선 블럭들을 자리모양으로 만들어서 클릭을하면 색이 바뀌도록 만들었습니다.

제가 node.js를 처음해봐서 http://blog.naver.com/PostView.nhn?blogId=hyoun1202&logNo=220671500986

여기있는 영화예매 만들어보기를 기준으로 만들었습니다. 여기서  socket 쓰는 부분만 json으로 post하도록 바꾸었습니다.

근데, 제가 만든 사이트에서는 누르면 바로바로 색이 바뀌는것이아니라 누르고 새로고침을 해줘야지만 색이바뀝니다.

해당 프로그램을 똑같이만든 다른사람들의 시연영상을보면 누르는 즉시 바뀌는거 같은데, 제꺼는 왜 안바뀌는지 계속 해봐도 잘안됩니다...


우선 index.js는
----------------------------------------------------
var express = require('express');
var router = express.Router();

global.seats = [       // 0 빈 공간, 1 예약가능 좌석, 2 예약이 완료된 좌석
    [1, 2, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0],
    [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
    [1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 3, 3, 3],
    [1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 3, 3, 3],
    [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
    [1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0],
    [1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1],
    [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
    [1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1],
    [1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1],
    [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
    [1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1],
]
;


/* GET home page. */
router.get('/', function(req, res, next) {
  console.log(global.seats);
  res.render('index');
});

router.use('/reserve', function(req, res){
  var x = req.body.x;
  var y = req.body.y;
  global.seats[y][x] = 2;
  console.log(global.seats);
  res.end();
}) ;
router.use('/release',function(req, res){
  var x = req.body.x;
  var y = req.body.y;
  global.seats[y][x] = 1;
  res.end();
});
module.exports = router;
-------------------------------------------------
seats.js
var express = require('express');
var router = express.Router();


/* GET users listing. */
router.get('/', function(req, res, next) {
  //요청
    //req  --> x, y
    // seat[x,y] = 2;
  res.send(global.seats);
});

module.exports = router;
----------------------------------------------------
controller.jade
script.
        var onClickSeat = function () {
            var x = $(this).attr('data-x');
            var y = $(this).attr('data-y');

            $.ajaxSettings.traditional = true;
            $.ajax({
                type: 'POST',
                url: '/reserve',
                data: {x: x, y: y},
                success: function (data) {

                }
            })
        };
        var onClickRelease = function () {
            var x = $(this).attr('data-x');
            var y = $(this).attr('data-y');

            $.ajaxSettings.traditional = true;
            $.ajax({
                type: 'POST',
                url: '/release',
                data: {x: x, y: y},
                success: function(data){
                }
            })

        };

        $.getJSON('/seats', {dummy: new Date().getTime()}, function (data) {
            $.each(data, function (indexY, line) {
                var $line = $('
').addClass('line');
                $.each(line, function (indexX, seat) {
                    var $output = $('
', {
                        'class': 'seat',
                        'data-x': indexX,
                        'data-y': indexY
                    }).appendTo($line);

                    if (seat == 1) {
                        //좌석이 비어있으면 enable 클래스와 click 리스너를 추가합니다.
                        $output.addClass('enable').on('click', onClickSeat);
                    } else if (seat == 2) {
                        //좌석이 사용 불가능 하면 disable클래스를 추가합니다.
                        $output.addClass('disable').on('click', onClickRelease);
                    }
                    else if (seat == 3) {
                        $output.addClass('counter');
                    }
                });
                $line.appendTo('body');
            });
        });

 우선 이렇게 만들었습니다. 파일이 필요하신분은 쪽지주시면 개인적으로 보내드리도록 하겠습니다....

통합규정 1.3 이용안내 인용

"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.
법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
16/12/06 21:25
수정 아이콘
nodejs는 안해봤지만 onClickSeat, onClickRelease 에서 success:function 안에 $(this).removeClass("disable"); $(this).addClass("enable"); 이런식으로 넣어줘야 UI 바뀌는게 작동을 할거같아요.
Patrick Jane
16/12/06 21:30
수정 아이콘
우선은 그런방식으로 고쳐봤는데요 이게 다른컴퓨터에서도 실시간으로 바뀌는게 보이려면 어떻게해야하나요ㅠㅠ
16/12/06 21:33
수정 아이콘
그거는 setInterval 같은걸로 몇초 간격으로 주기적으로 $.getJSON('/seats', ... 이걸 실행시켜서 내용을 바꿔주는 식으로 하면 되지 않을까 싶습니다.
Patrick Jane
16/12/06 21:45
수정 아이콘
답변 감사드립니다~
칸나바롱
16/12/07 12:26
수정 아이콘
실시간으로 바뀌는걸 하고 싶으시면 socket io나 pusher 같은 서비스를 알아보세요
Patrick Jane
16/12/07 16:00
수정 아이콘
처음에는 ajax로 보내는 부분을 본문에있는 링크처럼 socket io로 했다가 안돼서 ajax로 한건데 pusher한번 알아봐야겠네요 답변 감사합니다!!
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
94383 [질문] 아이큐 테스트 문제 하나만 찾아주세요 [1] 이혜리2089 16/12/06 2089
94382 [질문] node.js 질문입니다! [6] Patrick Jane3197 16/12/06 3197
94381 [질문] 개인사업자 관련 간단히 질문 드립니다 [2] RnR2157 16/12/06 2157
94380 [질문] 안드로이드 음악재생 어플 추천 부탁드립니다 [3] 후라이빵3659 16/12/06 3659
94379 [질문] 고양이가 캐슈넛 먹어도 되나요? [6] 삭제됨5482 16/12/06 5482
94378 [질문] [WOW] 아즈로 서버이전하려고 하는데 길드 추천좀해주세요 [6] RENTON2247 16/12/06 2247
94377 [질문] 재벌 청문회에 관하여 [9] 까우까우으르렁2286 16/12/06 2286
94376 [질문] 처음으로 직장을 가졌는데. 고민중입니다. [26] 삭제됨3761 16/12/06 3761
94375 [질문] 커피만 마시면 화장실에 갑니다 [21] wook985351 16/12/06 5351
94374 [질문] 오사카 주변 5박6일 일정 및 패스에 대한 질문입니다. [13] V24357 16/12/06 4357
94373 [질문] 인터넷 설치 관련 질문입니다 [4] 집에서나오지맙시다1705 16/12/06 1705
94372 [질문] 세월호 7시간 시점에관한 질의사항입니다. [11] 시오냥2547 16/12/06 2547
94371 [질문] 유통기한 지난 냉동 돈까스 튀겨 먹어도 될까요? [15] kylemong25498 16/12/06 25498
94370 [질문] 1일 1팩 좋나요? [12] 76to692987 16/12/06 2987
94369 [질문] pc 견적 및 호환 질문 [6] JL2600 16/12/06 2600
94367 [질문] 보조배터리 추천 부탁드립니다. [4] Dr.덴마2459 16/12/06 2459
94366 [질문] 체크카드로 험블번들 구매 안되나요? [6] 여섯넷백5230 16/12/06 5230
94365 [질문] PC제어 가능한 벽걸이 디지털 카운터 있나요? MDIR.EXE1400 16/12/06 1400
94364 [질문] ps4 타이틀 추천 부탁드립니다. (이른 설연휴 준비) [12] BISANG3602 16/12/06 3602
94363 [질문] 삼성역쪽 20~25명쯤 단체회식할만한 장소 있을까요? [8] aura3461 16/12/06 3461
94362 [질문] 대북지원에 대한 질문입니다. (노무현, 이명박, 진보10년, 보수10년) [8] Dow3107 16/12/06 3107
94361 [질문] IT선배님들 전자정부표준 spring 관련 궁금한것이 있습니다!? [9] eosdtghjl1931 16/12/06 1931
94360 [질문] 커피에 관한 질문입니다. [4] 바둑아위험해2126 16/12/06 2126
목록 이전 다음
댓글

+ : 최근 1시간내에 달린 댓글
+ : 최근 2시간내에 달린 댓글
맨 위로