생활코딩

Coding Everybody

Orientdb로 웹에플리케이션 구현

토픽 생활코딩 > 서버 > JavaScript (nodejs) - 폐지예정

Orientdb로 웹에플리케이션 제작 7 : 구현 계획

Orientdb로 웹에플리케이션 제작 8 : 읽기 1 - 글목록

Orientdb로 웹에플리케이션 제작 9 : 읽기 2 - 상세보기

웹에플리케이션 제작 - 읽기기능 2의 예제

Orientdb로 웹에플리케이션 제작 10 : 글추가

웹에플리케이션 제작 - 추가 기능의 예제

Orientdb로 웹에플리케이션 제작 11 : 글편집 1

웹에플리케이션 제작 - orientdb 11 - 편집1 예제

Orientdb로 웹에플리케이션 제작 12 : 글편집 2

웹에플리케이션 제작 - orientdb 12 - 편집 2 예제

편집 구현 정정

Orientdb로 웹에플리케이션 제작 13 : 글삭제

웹에플리케이션 제작 - orientdb 13 - 삭제 예제

댓글

댓글 본문
  1. 굼벵이
    완료
  2. 엔터를땋치면요롷케
    저는 정상작동 하는데, 혹시 오타난 곳이 어디 없는지 다시 한번 확인해보세요
    Yes no 버튼에 a ref 링크가 제대로 잡혀잇는지
    app.post 쪽 delete 다시 한번 체크해보세요
    대화보기
    • rj9101@naver.com
      강의 듣고, 본대로 따라 쳤는데
      delete할 때
      yes나 no를 누르면,
      해당 id에 상관없이 맨 밑의 값부터 삭제됩니다.

      예제대로 똑같이 따라 쳤는데...
      궁금합니다.^^
    • beam1100@naver.com
      doctype html
      html
      head
      meta(charset='utf-8')
      body

      h1
      a(href='/topic') arm wrestling skill
      ul
      each topic in topics
      li
      - rid= encodeURIComponent(topic['@rid'])
      a(href='/topic/'+rid)= topic.title
      article
      form(action='/topic/add' method='post')
      p
      input(type='text' name='title' value= topic.title)
      p
      textarea(type='text' name='description' )
      p
      textarea(type='text' name='author')
      p
      input(type='submit')
    • beam1100@naver.com
      edit.jade파일에서 article, form, p테그 안에 있는 topic.title이 출력이 안 됩니다. 도와주세요.
    • 정준혁
      오래돼서 이미 해결했을지 모르겠지만, 저도 그런문제가 있었는데 다시 차근차근 코드 만들어보니까 되더라고요 아예 그 부분 다지우고 잘되던 부분부터 다시 작성해보심이.. 저도 오래되서 기억은 잘안나는데 띄어쓰기 때문에 변수가 잘못되었던거 아니면, 제 경우는 명령문 자체에 문제가 아니라 다른 코드에서 괄호 빼먹거나 오타가 있었던게 문제였습니다.
      대화보기
      • 정준혁
        버전이 바껴서 그런지 DELETE 만으로는 삭제가 안되네요, 찾아보니까 DELETE VERTEX로 하니까 잘됩니다!
        수련하고 가야겠네요 감사합니다
      • 박인호
        1-12
        수강완료.
        다음 강의로 넘어가기 전에 확실히 '수련'을 하고 넘어가야겠군요.ㅎㅎ
      • encodeURIComponent 는 res 단으로 넘어가서 브라우저로 보내는 건데
        res.send 가 호출되기 전에 id 값을 찍으면 #12:0 이 들어가서 그런것 같네요
        대화보기
        • Seo Yun Seok Tudoistube
          알려주셔서 감사합니다.

          원인이 DESC 라는 단어가 INSERT 문의 VALUES 값 안에 따옴표에 둘러싸여 있어도 예약어여서 발생한거 같습니다.

          저도 여기서 막혀서 잠시 의욕상실됐다가 지난주말에 우연히 발견하고 다시 내일부터 이어서 나가려고 합니다.

          혹시, 제가 해보고 예약어 때문이 아니면 다시 답글로 올리겠습니다.

          감사합니다^_____^!!!
          대화보기
          • 저도 님과 같은 오류가 있었는데요, params를 별개의 변수로 뺄때만 오류가 생겼습니다. 예를 들어, var params = {......} 한 뒤 db.query문에 넣으면 오류가 생기더군요. 대신 이고잉님처럼 db.query(sql, {params:{...}} 처럼 하면 오류가 전혀 없습니다. 신기하다고 생각하고는 있습니다만 도움이 될진 모르겠습니다.
            대화보기
            • 김주한
              질문있습니다. 에디트주소는 이미 http://localhost......로 중간의 rid가 변환되어서 나오는데 밑의 코드에서 var id = req.params.id; 하면 위의 %2322%3A0가 id에 담겨야된다고 생각했는데, id를 출력해보니 #12:0처럼 변환하기 전 id가 나오네요. 왜 그런건지 모르겠습니다..
              app.post('/topic/:id/edit', function(req, res){
              var sql = 'UPDATE topic SET title=:t, description=:d, author=:a WHERE @rid=:rid';
              var id = req.params.id;
              var title = req.body.title;
              var desc = req.body.description;
              var author = req.body.author;
              db.query(sql, {
              params:{
              t:title,
              d:desc,
              a:author,
              rid:id
              }
              }).then(function(topics){
              res.send(id)
              // res.redirect('/topic/'+encodeURIComponent(id));
              });
            • Seo Yun Seok Tudoistube
              앞의 강의에서와 같이 INSERT 부분에서 Error parsing query 오류가 나는데요,
              제 생각에 VALUES 다음에 값을 둘러싼 쌍따옴표(") 때문에 주석문으로 인식해서 아닐까 궁금합니다.
              혹시, INSERT 에서 오류없으신분들은 어떻게 하셨는지 궁금합니다^^???
              소스 : var sql = 'INSERT INTO topic (title, desc) VALUES(:title, :desc);';
              콘솔화면 :
              Unhandled rejection OrientDB.RequestError: Error parsing query:
              INSERT INTO topic (title, desc) VALUES("qqq", "aaa");
              ^
              Encountered " "(" "( "" at line 1, column 19.
              Was expecting one of:
              <SELECT> ...
              <FROM> ...
              <RETURN> ...
              <CLUSTER> ...

              DB name="o2"
              at child.Operation.parseError (D:\JoyWins\WS_Javascript\OpenTutorialsNodeJs\node_modules\orientjs\lib\transport\binary\protocol33\operation.js:896:13)

              제가 OrientDB ZIP 파일로도 해보고, 이전버전인 tar 파일 218 버전도 받아봤는데, 같은 오류가 나서
              OrientDB 깃헙 이슈에서 같은 오류가 있어서 봤는데 해결책은 따라 해봤는데 해결이 안되었습니다.
              https://github.com......584

              혹시, INSERT 되시는 분 댓글 보시면 어떻게 하셨는지 알려주세요. 감사합니다^_____^!!!
            • 초보개발자
              음.. 저만 이상한건지 모르겠는데, 마지막에 글 삭제를 하고 난뒤 /topic 으로 이동하면 삭제한 아이템은
              빈 불렛으로 출력됩니다. 이건 view.jade 파일에서 rid 값 기준으로 항목들을 출력하기 때문에 그런 것이므로
              아래와 같이 수정해 주시면 좋을 것 같네요.
              each topic in topics
              if topic.title // <-- 추가 코드: rid값이 아닌 title이 있는 경우에만 출력
              li
              - rid = encodeURIComponent(topic['@rid'])
              a(href='/topic/' + rid)= topic.title
            • Jungjae Choi
              atom packages install에서 'atom-jade' 설치하시면 jade 파일이 컬러풀 해집니다 :)
              대화보기
              • 신입1
                Orientdb로 웹에플리케이션 제작 12 : 글편집 2 까지 완료
              • msminsu
                var sql= 'DELETE FROM topic WHERE @rid=:rid';
                var sql= 'DELETE VERTEX FROM topic WHERE @rid=:rid';

                저는 app_orientdb.js 파일에 app.post('/topic/:id/delete,.... 부분에 쿼리문에
                문제가 있었습니다.

                orientDB 버전업되서 그런지 document 종류가 여러가진데.. 그거에 따라 삭제 쿼리문이 다른것 같습니다.
                전 회사에선 첫번째 쿼리문이되고 집에선 두번째 쿼리문이 되더라구요...
                대화보기
                • 1234123
                  크으 db접속이안되서 실습 불가
                • 광선생
                  안녕하세요 이고잉님 강의 잘 듣고 있습니다

                  감사합니다

                  궁금한점이 12-1,13강의까지는 ATOM 내 jade 코드 색이 단색인데
                  최근 제작한 12-2강의부터 가독성이 좋아진 컬러를 보이고 있는데
                  어떻게 하는건가요?

                  찾다가 못찾아서 이렇게 문의를 남깁니다
                • 새아
                  어디에 질문해야 할지 몰라서 여기 적게 되었습니다~~
                  여기서 배운것을 응용해서 뭔가 만들어보고 있는데 orientdb는 id가 제멋대로 만들어져서..ㅠㅠ 순서대로 글이 써지지 않는 것 같습니다..
                  어떻게 해결할 수 있을까요? 글쓴 순서대로 나오게 하고싶은뎅..ㅠㅠ
                • 티티와
                  DELETE 에서 YES 버튼 누르면 이 에러가 자꾸 뜹니다.

                  Unhandled rejection OrientDB.RequestError
                  at child.Operation.parseError (/opt/server_side_javascript/node_modules/orientjs/lib/transport/binary/protocol33/operation.js:864:13)
                  at child.Operation.consume (/opt/server_side_javascript/node_modules/orientjs/lib/transport/binary/protocol33/operation.js:455:35)
                  at Connection.process (/opt/server_side_javascript/node_modules/orientjs/lib/transport/binary/connection.js:399:17)
                  at Connection.handleSocketData (/opt/server_side_javascript/node_modules/orientjs/lib/transport/binary/connection.js:290:20)
                  at emitOne (events.js:96:13)
                  at Socket.emit (events.js:189:7)
                  at readableAddChunk (_stream_readable.js:176:18)
                  at Socket.Readable.push (_stream_readable.js:134:10)
                  at TCP.onread (net.js:551:20)


                  이건 어떻게 고치나요?
                • 가루다
                  @rid select시 alias를 줘서 하는 조회하는게 encode하는것보다는 편한것 같습니다.
                  SELECT @rid as rid
                  FROM topic
                • halora
                  egoing님

                  웹에플리케이션 제작 - 읽기기능 2의 예제 view.jade 오타있습니다.
                  As-Is: artcle
                  To-Be: article
                • SimonFirst
                  아... 바로 다음 강의에서 나오는군요!!
                  대화보기
                  • SimonFirst
                    웹앱제작 12 편집2에서
                    app.get('/topic/:id/edit', function(req, res){
                    ...
                    ...
                    app.post('/topic/:id/add', function(req, res){
                    라고 나오는데요.
                    여기서 왜 post에서 '/topic/:id/add'가 되는건지 이해가 안됩니다 ㅠㅠ
                  • fasdgoc
                    감사합니다
                  • 광팔a
                    와 3번째영상.. 읽기2 어렵네요
                    잘 따라오다가 처음으로 코드복사했습니다 ㅜㅜ
                    대신 한번더 복습하고 다음으로 넘어가겠습니다..
                  • sSll바버미니llSs
                    헐..영상 바로 1분뒤에 알려주시네요. 이고잉님 나쁨 ㅠ.ㅜ 그냥 넘겼어야하는데...
                    대화보기
                    • sSll바버미니llSs
                      한시간째 버벅이다 그냥 이고잉님 코드 붙혀서 넘겼어요.
                      대화보기
                      • sSll바버미니llSs
                        똑같이 한거 같은데 도대체 찾을수가 없네요. li 에서는 a tag에 있는 topic.title은 출력이 되었었는데...
                        article에서는 TypeError가 나는데요..ㅠ.ㅜ

                        12| a(href='/topic/'+rid)= topic.title
                        13| article
                        > 14| h2= topic.title
                        15| = topic.description
                        16| div
                        17| a(href='/topic/new') new

                        Cannot read property 'title' of undefined
                      • orientdb 읽기 부분을 보다가 질문이 있어서 글을 올립니다.
                        파일 읽고 쓰기와 달리 글 목록 주소를 현재 rid값으로 하고 있는데, 이 rid값으로 꼭 써야 하는 것인가요? 그리고, 실제 라이브 환경에서도 이렇게 사용하는지 궁금합니다.


                        PS. 영상 보면서 재미있게 따라하고 있다보니 시간이 금방 지나가더라구요 감사합니다!
                        특히, 쭉 하다가 '실제 환경에서는 이렇게 하시면 안됩니다. (password 부분 등등), 이럴때는 이렇게 사용합니다.(인코딩 하는 부분)' 이렇게 이야기 해주시는 점이 좋은 것 같습니다.