Server Side JavaScript

댓글

댓글 본문
작성자
비밀번호
  1. 2 번째 영상에서 cart[id] 값이 존재하지 않는데 사용하셔서 뭐지 하고 1시간은 고민했는데 8분이후에 설명이나오네요...ㅠㅠ 이거 주의하세염
  2. 대박입니다 덕분에 풀렸어요 ㅠㅠ
    대화보기
    • Wonil Shim
      쿠키로 전달 된 데이터가 문자열이라서 Int형으로 바꿔주는 것은 이해가 되는데,
      더하기를 한 후, 이것을 다시 문자열로 바꿔주지 않아도 되네요.
      @_@a...
    • 루팡
      Shopping cart 3에서

      for (var id in cart){ ~ }부분 내용에서 에러가 발생 할 수 있네요.
      Cart 배열이 3개 이상이면 products[id].title을 못 불러옵니다.
      title은 2개만 있으니까요.
      cart 배열이 3개 이상이라는 뜻은 누군가 의도적으로 없는 id의
      cookie값을 계속 늘릴 수 있다는 것입니다.
      예컨대 /cart/3을 들어가면 cart 배열이 [1,2,3] 3개가 생기므로
      title에 접근할 수 없습니다.

      차라리 for (var id in products){if (cart[id]>0) }가 나을듯 싶습니다.
    • kind65505256@gmail.com
      for A in B 문을 사용하면 B객체 내부에서 각 값을 만날때마다 그 값을 A에 정의해서 사용하게 됩니다.
      다시 말하면, for var name in products를 하면 각 li 엘리먼트 속에서 이미 products.X 를 가지고 다시 돌게 됩니다.
      때문에 만약 products={ name1 : {family : 'kim', nick : 'sun'}, name2 : {family : 'hong', nick : 'moon' }} 이고 각 객체를 돌게 하시려면,

      for (let name in products){ <li>name.family</li> + <li>name.nick</li> } 처럼 하셔야 합니다.
      대화보기
      • 박인호
        1-17
        수강완료.
        감사합니다.
      • 초보
        app.get('/cart/delete/:id', (req, res) => {
        var id = req.params.id;
        var cart = req.cookies.cart;
        if(cart[id])
        {
        delete cart[id];

        res.cookie('cart', cart);
        res.redirect('/cart');
        }
        });
      • 코딩하는오징어
        오 좋네요 ㅎㅎ 저는 cart[id] -= 1 로 해서 수량을 빼는 거를 했었는데 reset하는 것도 추가해야겠습니다.
        대화보기
        • Chuck
          감사합니다 저도 0으로 했는데 안돼서 고민하고 있었는데 덕분에 해결했습니다!!
          대화보기
          • 김말똥
            전 이렇게 해봤습니다.... 쿠키삭제?..라기보다 재정의?...

            app.get('/delete/:id', function(req, res){
            var id = req.params.id;
            var cart = req.cookies.cart;
            var cart_buffer ={};
            for(gid in cart){
            if(id == gid) continue;
            cart_buffer[gid] = cart[gid];
            }
            res.cookie('cart', cart_buffer);
            res.redirect('/cart');
            });
          • ${products[id].title} 부분에서 오류나시는분은 쿠키를 삭제했다 다시 해보세요
            저는 주소창에 cart/3을 입력했다가 데이터가 들어가서 안된거였더라구요
          • 오씨
            컴퓨터 포맷을 하면서 기존 소스를 다시 셋팅해서 개발하던 중에 app_cookie.js 에서
            var output = '';
            for(var name in products){
            output += `<li>${products[name].title}</li>`;
            //console.log(products[name].title);
            }
            그레인트 엑센트 부분에서 에러가 납니다.
            왜 그런지 궁금합니다.
          • 생활코딩짱짱맨
            혼자서 딜리트를 만들어 본 과정이 많은 도움이 되었습니다.

            제가 구상한 코드입니다.

            카트의 아웃풋에

            <li>
            ${products[id].title}
            (${cart[id]})
            <a href="/del/${id}"> del </a>
            </li>`;

            del이라는 부분으로 id로 접근 할 수 있는 html을 짯습니다.

            app.get('/del/:id',function(req,res){
            var id = req.params.id;
            var cart = req.cookies.cart;

            if(!cart){res.send('null')}
            else{
            cart[id] =0;
            res.cookie('cart', cart);
            }
            res.redirect('/products');

            });

            이렇게 지워줬습니다.
          • 군옥수수
            어쩔때는 1이 증가하고 2가 증가하고 주소창에 입력만해도 증가가 되는데 왜이러는거죠? ㅜㅜ redirect에서 문제가 생긴건가요? redirect를 /products로 하면 이런 현상이 안일어나는데 이유가 궁금합니다
            대화보기
            • 군옥수수
              저도 카트에서 주소창에 cart/1 , cart/2 이런식으로 접근하면 2씩 증가가 되던데 왜그런건가요?
            • Boswell
              아 로그를 통해서 확인해보니 주소창에 "cart/1"을 치자마자 카운트 로직이 동작을 하네요. 주소창에 엔터를 치지않아도 통신이 이뤄져서 그런가요?
            • Boswell
              우선 egoing님, 좋은 강의 만들어주셔서 감사합니다.
              그런데 강의 실습을 하던 중에 최초 생성했던 cart 쿠키를 삭제하고 다시 생성하면,
              해당 id의 값이 2만큼 카운트됩니다. 어찌된 영문인지 모르겠네요.
            • rhizomego
              이렇게 해결했네요.

              var id = req.params.id;
              if(req.cookies.cart) {
              if(req.cookies.cart === undefined) {
              var cart = {};
              } else {
              var cart = req.cookies.cart;
              }
              } else {
              var cart = {};
              }
              if(!cart[id]){
              cart[id] = 0;
              }
              cart[id] = parseInt(cart[id])+1;
              res.cookie('cart', cart);
              res.send(cart);
              });
              대화보기
              • rhizomego
                깃 허브에 있는 소스를 그대로 갖다 붙였는데도 결과값은 계속 undefied로 나오는데
                아무도 이런 결과는 안나오는 건가요?

                app.get('/cart/:id', function(req, res){
                var id = req.params.id;
                if(req.cookies.cart) {
                var cart = req.cookies.cart;
                } else {
                var cart = {};
                }
                if(!cart[id]){
                cart[id] = 0;
                }
                cart[id] = parseInt(cart[id])+1;
                res.cookie('cart', cart);
                res.send(cart);
                });
              • 박첩구드
                감사합니다
              • 이정현
                삭제도 구현해 봤는데 잘한건지 모르겠네요ㅋㅋ 수업 잘 보고 있습니다~
                첨엔 undefined 말고 0으로 했다가 ''로도 해봤다가ㅜㅜ
                app.get('/cart/:id/delete', function(req, res){
                var id = req.params.id
                var cart = req.cookies.cart
                cart[id] = undefined;
                res.cookie('cart', cart)
                res.redirect('/cart')
                })
              • 민윤홍
                첫번째 비디오에서 for ... in 구문을 자바스크립트 오브젝트 요소에 쓰면, 순서가 보장되지 않습니다~
              • 51줄을 cart[id]=0;으로 바꿔보세요!
                대화보기
                • 호동
                  위 수업을 따라하며 코드를 작성했는데요. 계속 오류가 발생하는데 뭐가 문제인지 모르겠습니다. 올라온 소스코드와는 동일한 것 같은데 어디를 수정해야 하는지 좀 알려주세요.

                  아래는 소스코드 입니다.
                  http://ideone.com/68jx42
                • INTRO에서 말씀하신 ADD랑 델리키 기능은 강의로 안나와있습니다.
                • 초보웹 개발자
                  폭풍 감자님 감사합니다
                • 폭풍감자
                  encoding 되어 있는거네요.
                  http://meyerweb.com......er/ 이 사이트 가셔서
                  cookie의 내용을 복사하신 뒤에 decoding 하시면 되구요.
                  javascript Api는 encoding 반대함수를 찾으시면 됩니다.
                  대화보기
                  • 초보웹 개발자
                    app.get('/cart/:id', function(req, res){

                    res.cookie('cart', cart);
                    Set-Cookie:cart=j%3A%7B%221%22%3A1%2C%225%22%3A1%2C%227%22%3A4%7D; Path=/
                    res.send(cart);
                    {"1":1,"5":1,"7":4} --> 브라우저 모니터
                    //res.redirect('/cart');
                    });

                    cart=j%3A%7B%221%22%3A1%2C%225%22%3A1%2C%227%22%3A4%7D; 의 내용을
                    cart={"1":1,"5":1,"7":4} 이렇게 표현하려면 javascript에서 어찌 처리해야하는지
                    <모안이 적용되지 않은 부분입니다.>
                    아시는분 계시면 알려주시기 바랍니다.
                  버전 관리
                  egoing
                  현재 버전
                  선택 버전
                  graphittie 자세히 보기