미티어 라우터 정리
Router 용어
이 장에서 우리는 라우터의 많은 다양한 기능을 다룰 것이다. Rails와 같은 프레임워크에 대한 경험이 있다면, 이 개념의 대부분에 이미 익숙할 것이다. 하지만, 그렇지 않다면 좀 더 빠르게 배울 수 있도록 용어를 제공한다:
- 루트(Routes): 루트는 라우팅의 기본 구축 블록이다. 이것은 앱에게 어디로 갈지 그리고 URL을 만나면 무엇을 할 지를 지시하는 지침의 집합이다.
- 경로(Paths): 경로는 앱에 있는 URL이다. 이것은 정적(`/termsofservice`)일 수도 있고, 동적(`/posts/xyz`)일 수도 있으며, 쿼리 매개변수(`/search?keyword=meteor`)를 담을 수도 있다.
- 세그먼트(Segments): 슬래시 문자(`/`)로 구분되는 경로의 일부를 의미한다.
- 후크(Hooks): 후크는 라우팅 프로세스의 전, 후 또는 그 프로세스 중간에 실행될 수 있는 동작이다. 전형적인 예제로는 페이지를 보여주기 전에 사용자가 적절한 권한을 가지고 있는지 확인하는 것이 있다.
- 필터(Filters): 필터는 하나 이상의 루트에서 전역적으로 정의하는 단순한 hook이다.
- 루트 템플릿(Route Templates): 각 루트는 템플릿을 지정해야 한다. 만약 템플릿을 지정하지 않으면, 라우터는 루트와 이름이 같은 템플릿을 찾는다.
- 레이아웃(Layouts): 레이아웃은 디지털 사진 프레임의 하나로 생각할 수 있다. 레이아웃은 현재의 템플릿을 감싸는 모든 HTML 코드를 포함하며, 템플릿이 변경되어도 현재 상태를 유지한다.
- 컨트롤러(Controllers): 때때로, 많은 템플릿이 동일한 매개변수를 재사용하는 것을 볼 수 있다. 이 경우에 코드를 반복하는 대신에, 이런 루트들마다 라우팅 로직 전체를 담고 있는 하나의 routing controller에서 상속받아 구현하게 할 수 있다.
Iron Router에 대하여 더 자세히 알고 싶다면, GitHub에 있는 문서를 참조하기 바란다.
Meteor.call
함수의 첫 매개변수에는 메서드 이름을 넣는다. 이 함수를 호출할 때, 여러 매개변수를 전달(이 경우, 입력 폼에서 구성한 post
객체)할 수 있다. 그리고 마지막에 콜백함수를 추가하는데 이 함수는 서버쪽의 메서드가 수행된 다음에 실행된다.
Meteor method 콜백은 항상 2개의 매개변수 error
와 result
를 가진다. 어떤 이유로든 error
매개변수가 있으면, 사용자에게 (콜백을 취소하기 위하여 return
을 통해서) 경고를 보낸다. 만약 모든 것이 잘 돌아가면, 사용자를 새로 만든 post 토론 페이지로 redirect한다.
audit-argument-checks
패키지를 이용하여 method에 보안을 추가
_.extend()
는 Underscore 라이브러리의 method로서, 단순히 하나의 객체에 속성을 추가하여 “확장”하는 기능을 한다.
실습 예제)
Router.configure({
layoutTemplate: '기본 셋팅할 html화면'
});
Router.route('/', { //디폴트 루트 경로 설정
name: 'template명기입', //디폴트 화면 지정 template 이름
data: function() {
return [];
}
});
또 다른 표현은
Router.map(function() {
this.route('template명기입', {path: '/'}) ;
});