Server Side JavaScript

댓글

댓글 본문
  1. David Paine
    해당 도구를 참조 할 수도 있습니다.
    https://url-decode.com/.
    언급 한 도구와 비교하여 해당 도구는 인코딩에 더 많은 기능을 제공합니다.
    대화보기
    • 굼벵이
      완료
    • 2 번째 영상에서 cart[id] 값이 존재하지 않는데 사용하셔서 뭐지 하고 1시간은 고민했는데 8분이후에 설명이나오네요...ㅠㅠ 이거 주의하세염
    • Nansu
      대박입니다 덕분에 풀렸어요 ㅠㅠ
      대화보기
      • 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 자세히 보기