Node.js,Express 메모 ⑤의 4
                                            
                                                
                                                
                                                
                                                
                                                
                                                 3491 단어  Express.jspugNode.js
                    
이 튜토리얼 Part5의 하위 페이지 네 번째입니다.
htps : //에서 ゔぇぺぺr. 어쩌면. 오 rg / 그럼 / cs / ぇ r rn / se r ゔ r r / / xp rs s_ 때문에 js / ぢ sp ぁ y yn g_ data / Home _ Page
여기에서 catalog/에서 액세스하는 웹 페이지를 만드는 것 같습니다.
만들어야 할 것
①이미 기술하고 있는 컨트롤러 함수의 갱신
② 렌더링용 .pug 파일의 작성
 catalog 루트 페이지 다시 쓰기
이 체트리얼은 Book에 대한 페이지 작성이므로 catalog/의 루트 페이지는 bookController.js에 쓰는 것 같습니다.
게다가 거기의 페이지를 이렇게 지정하고 있는 것은 routes/catalog.js의 전반에 써 있다router.get("/", book_controller.index); 이쪽의 기술.
127.0.0.1:3000/catalog/ 에 액세스하면 book_controller.index 함수로 날아가는 설정 같아요.
책의 index 페이지에 필요한 설명을 합니다.
이 페이지에는 이런 느낌.
 
・왼쪽에 메뉴 바(전회의 페이지로 쓴 사이드 바)
・우측은 고정 텍스트와 데이터베이스로부터 취득한 각 요소의 총수
그래서 데이터베이스에서는 각 테이블의 총수만 동적으로 취득할 수 있으면 좋을까라고 생각합니다.
여기의 처리는 동기화가 필요할 것 같습니다.
먼저 require에서 필요한 모델(book, author, genre, bookinstance)을 읽은 상태로 기술해 갑니다.
아, async도 잊지 않고 require합니다.
exports.index = function(req, res){
    async.parallel({
        book_count: function(callback){
            Book.countDocument({}, callback);
        },
        book_instance_available_count: function(callback){
            BookInstance.countDocument({status: "Available"}, callback)
        }
        //一部抜粋
    },
    function(err, results){
        res.render("index", {title: "Local Library Home", error: err, data: results})
    }
}
카운트하기 위해서는 모델에 준비되어 있는 countDocument라는 함수를 사용하면 좋을 것 같습니다.
첫 번째 인수는 쿼리입니까? status가 Available 의 것만을 카운트할 수도 있는 것 같습니다.
※python과 쓰는 방법이 다르기 때문에 조금 당황합니다(syntax error가 되어 버린다)
마지막으로 render 함수로 렌더링 템플릿에 값을 전달하여 끝.
 index.pug
index 용 pug 파일입니다.
layout.pug를 상속합니다. (기술적으로는 확장인가?)
extends layout
block content
이제 상속 + content 부분만 바꾸는 것 같네요.
여기서 사용할 수 있는 변수는 title, error, data의 3개입니다.
data에는 countDocument의 값이 들어 있다고 생각합니다만 err에는 무엇이 들어 있는지 모릅니다. .
※요점 확인
이제 index.pug는 다음과 같습니다. 사경한 것입니다.
extends layout
block content
  h1= title
  p Welcome to #[em LocalLibrary], a very basic Express website developed as a tutorial example on the Mozilla Developer Network.
  h1 Dynamic content
  if error
    p Error getting dynamic content.
  else
    p The library has the following record counts:
    ul
      li #[strong Books:] !{data.book_count}
      li #[strong Copies:] !{data.book_instance_count}
      li #[strong Copies available:] !{data.book_instance_available_count} 
      li #[strong Authors:] !{data.author_count}
      li #[strong Genres:] !{data.genre_count}
※ 여기 근처의 설명은 이전 튜토리얼에도 있었지만 웃음
위의 페이지와 비교하면,,,
h1, p, li는 htmtl 태그처럼 보입니다.
#[]는 행에 포함된 태그일까요? 흠. 이해하기 어렵습니다.
em은 협력(이탤릭)
strong은 굵은 글씨처럼 보입니다.
if 분 후에는 들여쓰기가 있어 {}안의 것은 변수와 같습니다만title라든지 error라든지 없는 것은 왜,,.
=로 연결하는 것은 이렇게 안되면 안되는 것 같습니다.
o h1=title
o h1=title
xh1=title
x h1 = title
과연.
템플릿의 해설을 보고 있었을 때는 흠뻑 빠졌지만 풀어 보면 납득입니다.
계속
                
                    
        
    
    
    
    
    
                
                
                
                
                    
                        
                            
                            
                            Reference
                            
                            이 문제에 관하여(Node.js,Express 메모 ⑤의 4), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
                                
                                https://qiita.com/hat27/items/ec279247059fd07bdd90
                            
                            
                            
                                텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                            
                            
                                
                                
                                 우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)
                            
                            
                        
                    
                
                
                
            
이 체트리얼은 Book에 대한 페이지 작성이므로 catalog/의 루트 페이지는 bookController.js에 쓰는 것 같습니다.
게다가 거기의 페이지를 이렇게 지정하고 있는 것은 routes/catalog.js의 전반에 써 있다
router.get("/", book_controller.index); 이쪽의 기술.127.0.0.1:3000/catalog/ 에 액세스하면 book_controller.index 함수로 날아가는 설정 같아요.책의 index 페이지에 필요한 설명을 합니다.
이 페이지에는 이런 느낌.

・왼쪽에 메뉴 바(전회의 페이지로 쓴 사이드 바)
・우측은 고정 텍스트와 데이터베이스로부터 취득한 각 요소의 총수
그래서 데이터베이스에서는 각 테이블의 총수만 동적으로 취득할 수 있으면 좋을까라고 생각합니다.
여기의 처리는 동기화가 필요할 것 같습니다.
먼저 require에서 필요한 모델(book, author, genre, bookinstance)을 읽은 상태로 기술해 갑니다.
아, async도 잊지 않고 require합니다.
exports.index = function(req, res){
    async.parallel({
        book_count: function(callback){
            Book.countDocument({}, callback);
        },
        book_instance_available_count: function(callback){
            BookInstance.countDocument({status: "Available"}, callback)
        }
        //一部抜粋
    },
    function(err, results){
        res.render("index", {title: "Local Library Home", error: err, data: results})
    }
}
카운트하기 위해서는 모델에 준비되어 있는 countDocument라는 함수를 사용하면 좋을 것 같습니다.
첫 번째 인수는 쿼리입니까? status가
Available 의 것만을 카운트할 수도 있는 것 같습니다.※python과 쓰는 방법이 다르기 때문에 조금 당황합니다(syntax error가 되어 버린다)
마지막으로 render 함수로 렌더링 템플릿에 값을 전달하여 끝.
index.pug
index 용 pug 파일입니다.
layout.pug를 상속합니다. (기술적으로는 확장인가?)
extends layout
block content
이제 상속 + content 부분만 바꾸는 것 같네요.
여기서 사용할 수 있는 변수는 title, error, data의 3개입니다.
data에는 countDocument의 값이 들어 있다고 생각합니다만 err에는 무엇이 들어 있는지 모릅니다. .
※요점 확인
이제 index.pug는 다음과 같습니다. 사경한 것입니다.
extends layout
block content
  h1= title
  p Welcome to #[em LocalLibrary], a very basic Express website developed as a tutorial example on the Mozilla Developer Network.
  h1 Dynamic content
  if error
    p Error getting dynamic content.
  else
    p The library has the following record counts:
    ul
      li #[strong Books:] !{data.book_count}
      li #[strong Copies:] !{data.book_instance_count}
      li #[strong Copies available:] !{data.book_instance_available_count} 
      li #[strong Authors:] !{data.author_count}
      li #[strong Genres:] !{data.genre_count}
※ 여기 근처의 설명은 이전 튜토리얼에도 있었지만 웃음
위의 페이지와 비교하면,,,
h1, p, li는 htmtl 태그처럼 보입니다.
#[]는 행에 포함된 태그일까요? 흠. 이해하기 어렵습니다.
em은 협력(이탤릭)
strong은 굵은 글씨처럼 보입니다.
if 분 후에는 들여쓰기가 있어 {}안의 것은 변수와 같습니다만title라든지 error라든지 없는 것은 왜,,.
=로 연결하는 것은 이렇게 안되면 안되는 것 같습니다.
o h1=title
o h1=title
xh1=title
x h1 = title
과연.
템플릿의 해설을 보고 있었을 때는 흠뻑 빠졌지만 풀어 보면 납득입니다.
계속
                
                    
        
    
    
    
    
    
                
                
                
                
                    
                        
                            
                            
                            Reference
                            
                            이 문제에 관하여(Node.js,Express 메모 ⑤의 4), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
                                
                                https://qiita.com/hat27/items/ec279247059fd07bdd90
                            
                            
                            
                                텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                            
                            
                                
                                
                                 우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)
                            
                            
                        
                    
                
                
                
            
extends layout
block content
extends layout
block content
  h1= title
  p Welcome to #[em LocalLibrary], a very basic Express website developed as a tutorial example on the Mozilla Developer Network.
  h1 Dynamic content
  if error
    p Error getting dynamic content.
  else
    p The library has the following record counts:
    ul
      li #[strong Books:] !{data.book_count}
      li #[strong Copies:] !{data.book_instance_count}
      li #[strong Copies available:] !{data.book_instance_available_count} 
      li #[strong Authors:] !{data.author_count}
      li #[strong Genres:] !{data.genre_count}
Reference
이 문제에 관하여(Node.js,Express 메모 ⑤의 4), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hat27/items/ec279247059fd07bdd90텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                                
                                
                                
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)