Node.js를 기반으로 KoaHub 플랫폼에서 개발된 Koa 라우터 라우팅 플러그인의 코드 정보 상세
koa 라우터
Koa용 라우터 미들웨어. RESTful 리소스 라우팅을 제공합니다.
koa 라우터
koa용 라우터 미들웨어[list][*]app.get, app.put, app.post 등을 사용한 고속 스타일 라우팅
[*]이름이 지정된 URL 매개변수.
[*]URL 생성이 포함된 명명된 경로.
[*]허용된 방법으로 OPTIONS 요청에 응답합니다.
[*]405 메서드가 허용되지 않음 및 501이 구현되지 않음을 지원합니다.
[*]다중 경로 미들웨어.
[*]여러 라우터.
[*]중첩 가능한 라우터.
[*]ES7 비동기/대기 지원(koa-router 7.x).[/list]koa 2.x
koa 2.x 및 async/await 지원에 대해서는 koa-router 7.x를 참조하세요.
설치
npm을 사용하여 설치:npm install koa-router
API 참조[list][*]koa-router
[*]라우터 ⏏
[*]새 라우터([선택])
[*]인스턴스
[*].get|put|post|patch|삭제 ⇒ 라우터
[*].param(param, 미들웨어) ⇒ 라우터
[*].use([경로], 미들웨어, [...]) ⇒ 라우터
[*].routes ⇒ 기능
[*].allowedMethods([옵션]) ⇒ 함수
[*].redirect(소스, 대상, 코드) ⇒ 라우터
[*].route(이름) ⇒ 레이어 | 거짓
[*].url(이름, 매개변수) ⇒ 문자열 | 오류
[*]정적
[*].url(경로, 매개변수) ⇒ 문자열[/list]라우터
종류: 수출형
새 라우터([선택])
새 라우터를 만듭니다.
[테이블=50%]
var app = require('koa')();<br>
var router = require('koa-router')();<br>
<br>
router.get('/', function *(next) {...});<br>
<br>
app<br>
.use(router.routes())<br>
.use(router.allowedMethods());
var app = require('koa')();router<br>
.get('/', function *(next) {<br>
this.body = 'Hello World!';<br>
})<br>
.post('/users', function *(next) {<br>
// ... <br>
})<br>
.put('/users/:id', function *(next) {<br>
// ... <br>
})<br>
.del('/users/:id', function *(next) {<br>
// ... <br>
});
앱router.get('user', '/users/:id', function *(next) {<br>
// ... <br>
});<br>
<br>
router.url('user', 3);<br>
// => "/users/3"
this.body = 'Hello World!';router.get(<br>
'/users/:id',<br>
function *(next) {<br>
this.user = yield User.findOne(this.params.id);<br>
yield next;<br>
},<br>
function *(next) {<br>
console.log(this.user);<br>
// => { id: 17, name: "Alex" } <br>
}<br>
);
// ...
})
.put('/users/:id', 함수 *(다음) {
.del('/users/:id', 함수 *(다음) {<br>
// ... <br>
});
경로 경로는 path-to-regexp를 사용하여 정규식으로 변환됩니다.var router = new Router({<code class="prettyprint linenums lang-php">var router = new Router({<br>
prefix: '/users'<br>
});<br>
<br>
router.get('/', ...); // responds to "/users" <br>
router.get('/:id', ...); // responds to "/users/:id"
접두사: '/users'
});
router.get('/:category/:title', function *(next) {<br>
console.log(this.params);<br>
// => { category: 'programming', title: 'how-to-node' } <br>
});
URL 매개변수router.get('/:category/:title', function *(next) {<tr>에 추가됩니다.
console.log(this.params);<td>
// => { 카테고리: '프로그래밍', 제목: '노드 방법' } </td>
});<td></td>Kind<td>: Router의 인스턴스 속성</td>
</tr>
[table=50%]<tr>
<td>매개변수 </td>
<td>유형 </td>
<td> 설명</td>
</tr>
<tr>
<td> 경로</td>
<td> 문자열</td> <td> </td>
</tr>
<tr>
<td> [미들웨어]</td>
<td>함수 </td>
<td>라우트 미들웨어 </td>
</tr>
<b></b> 콜백<br><br>함수 <br><br> 경로 콜백<br><br>[/table]<br>router.routes<br> ⇒ 함수<br>
<br>
요청과 일치하는 경로를 전달하는 라우터 미들웨어를 반환합니다.<br>
<br>
종류: Router의 인스턴스 속성<br>
<br>
router.use([경로], 미들웨어, [...]) ⇒ 라우터<tr>
<td>
경로 콜백 전에 지정된 미들웨어를 사용하세요.</td>
<td>
경로가 일치하는 경우에만 실행됩니다. 경로가 제공되면 해당 경로를 포함하는 모든 경로에 대해 미들웨어가 실행됩니다.</td>
</tr>
종류: Router의 인스턴스 메소드<tr>
<td>
[테이블=50%]</td>
<td> 매개변수</td>
</tr>유형 <tr>
<td></td>
<td> [경로]</td>
</tr>문자열 <tr>
<td></td>
<td>미들웨어 </td>
</tr>함수 <b></b><code class="prettyprint linenums lang-php">router.use(session(), authorize());<br>
<br>
// use middleware only with given path <br>
router.use('/users', userAuth());<br>
<br>
app.use(router.routes());
[...] router.use(session(), authorize());
router.prefix('/things/:thing_id')
매개변수 router.prefix('/things/:thing_id')<td>router.allowedMethods([options]) ⇒ 함수</td>
<td>
허용된 메서드가 포함된 Allow 헤더가 있는 OPTIONS 요청에 응답하고 적절하게 405 메서드가 허용되지 않음 및 501 구현되지 않음으로 응답하기 위한 별도의 미들웨어를 반환합니다.</td>
var app = koa();<br>
var router = router();<br>
<br>
app.use(router.routes());<br>
app.use(router.allowedMethods());<br>
<br>
Example with Boom<br>
<br>
var app = koa();<br>
var router = router();<br>
var Boom = require('boom');<br>
<br>
app.use(router.routes());<br>
app.use(router.allowedMethods({<br>
throw: true,<br>
notImplemented: () => new Boom.notImplemented(),<br>
methodNotAllowed: () => new Boom.methodNotAllowed()<br>
}));
기본 NotImplemented 오류 대신 반환된 값을 발생시킵니다. router.redirect('/login', 'sign-in');
router.all('/login', function *() {<br>
this.redirect('/sign-in');<br>
this.status = 301;<br>
});
기본 MethodNotAllowed 오류 대신 반환된 값을 버립니다var app = koa();
var router = router();
app.use(router.routes());
app.use(router.allowedMethods());
Boom의 예
var app = koa();
var router = router();
var 붐 = require('붐');
app.use(router.routes());
app.use(router.allowedMethods({
던지기: 사실,
구현되지 않음: () => 새로운 Boom.notImplemented(),
methodNotAllowed: () => 새로운 Boom.methodNotAllowed()
}));router.redirect(소스, 대상, 코드) ⇒ 라우터
선택적 30x 상태 코드를 사용하여 소스를 대상 URL로 리디렉션합니다.
소스와 대상 모두 경로 이름이 될 수 있습니다.<code class="prettyprint linenums lang-php">router.redirect('/login', 'sign-in');이는 다음과 같습니다.<code class=" Prettyprint linenums lang-php">router.all('/login', 함수 *() {
this.redirect('/sign-in');
this.status = 301;
});종류: Router의 인스턴스 방식
[테이블=50%]<tr>
<td> 매개변수</td>
<td> 유형</td>
<td>설명 </td>
</tr>
<tr>
<td>소스</td>
<td>문자열</td> <td>URL 또는 경로 이름.</td>
</tr>
<tr>
<td>목적지</td>
<td>문자열</td>
<td>URL 또는 경로 이름 >코드</td>
</tr>번호<tr>
<td>HTTP 상태 코드(기본값: 301).</td>
<td>[/table]</td>router.route(name) ⇒ 레이어 false<td> </td>
</tr>
이름으로 경로를 조회합니다.<b>
</b>
<br>종류<br>: Router의 인스턴스 방식<br>
<br>
매개변수 유형<b>
이름 문자열</b>
<br>
router.url(이름, 매개변수) ⇒ 문자열 오류<br>
<br>
경로에 대한 URL을 생성합니다. <br> 경로 이름과 지도를 가져옵니다.
<br>
위몰 오픈소스 마이크로몰, 위챗몰, 쇼핑몰 소스코드, 3단계 유통, 마이크로 신선식품, 마이크로 과일, 마이크로 테이크아웃, 마이크로 주문 --- 전문적인 O2O 시스템 <br>
<br>
위몰 주소 : http://www.wemallshop.com<br>
<br>
<br>
코드 소스: http://js.koahub.com/home/feature/koa-jwt<br>
<br> <br><br><br><img src="http://images2015.cnblogs.com/blog/993200/201610/993200-20161017174927623-1398173112.jpg" alt="Node.js 기반 KoaHub 플랫폼에서 개발된 라우터 라우팅 플러그인 코드" >
<p class="da_word"></p>