객체 라우팅
메시지 핸들러 라우팅 객체
라우팅 객체는http메시지 처리의 핵심 목적인 서버는 라우팅 설정에 따라 매칭됩니다.url방법과 의지http다양한 트랜잭션을 완료하기 위해 메시지가 해당 프로세서로 전달됩니다.
간단한 경로는 다음과 같이 JSON 객체로 직접 제공될 수 있습니다.
1
2
3
4
5
6
7
8var http = require('http');
var svr = new http.Server(8080, {
'/': r => r.response.write('home'),
'/help': r => r.response.write('help')
});
svr.start();
더 복잡한 라우팅 사용자 정의가 필요한 경우 라우팅 개체를 직접 만들고 필요에 따라 라우팅 전략을 처리할 수 있습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22var http = require('http');
var mq = require('mq');
var app = new mq.Routing();
app.get('/', r => r.response.write('home'));
app.get('/help', r => r.response.write('help'));
app.post('/help', r => r.response.write('post a help.'));
app.get('/home/:user', (r, user) => r.response.write('hello ' + user));
app.get('/user/:id(\\d+)', (r, id) => r.response.write('get ' + id));
app.get('/actions', {
'/run': r => r.response.write('running'),
'/sleep': r => r.response.write('sleeping'),
'(.*)': r => r.response.write('........')
});
var svr = new http.Server(8080, app);
svr.start();
라우팅 객체는 설정된 규칙에 따라 메시지를 일치시키고, 규칙을 만족하는 첫 번째 처리자에게 메시지를 전달합니다. 나중에 추가된 라우팅 규칙이 먼저 일치됩니다. 생성 방법:
1
2
3
4var routing = new mq.Routing({
"^/func1(/.*)$": func1,
"^/func2(/.*)$": func2
});
정규식과 일치하는 항목은 메시지의 value 속성을 수정하고 하위 항목은 메시지의 params 속성에 저장됩니다. 예를 들어:
1
2
3var routing = new mq.Routing({
"^/func1(/([0-9]+)/([0-9]+)\.html)$": func1,
});
"/func1/123/456.html" 메시지를 일치시킨 후, value == "/123/456.html", params == ["123", "456"];
일치하는 결과에 하위 항목이 없으면 value는 비어 있고 params는 비어 있습니다. 예를 들어:
1
2
3var routing = new mq.Routing({
"^/func1/[0-9]+/[0-9]+\.html$": func1,
});
"/func1/123/456.html" 메시지를 일치시킨 후, value == "", params == [];
일치 결과의 첫 번째 수준에 여러 하위 항목이 있는 경우 value는 비어 있고 params는 첫 번째 수준 하위 항목입니다. 예를 들어:
1
2
3var routing = new mq.Routing({
"^/func1/([0-9]+)/([0-9]+)\.html$": func1,
});
"/func1/123/456.html" 메시지를 일치시킨 후, value == "", params == ["123", "456"];
일치하는 결과에 하위 키가 하나만 있고 하위 하위 키가 없으면 value와 params가 모두 이 하위 키입니다. 예를 들어:
1
2
3var routing = new mq.Routing({
"^/func1/([0-9]+)/[0-9]+\.html$": func1,
});
"/func1/123/456.html" 메시지를 일치시킨 후, value == "123", params == ["123"];
상속관계
건설자
Routing
메시지 핸들러 라우팅 객체 생성
1new Routing(Object map = {});
호출 매개변수:
- map: 객체, 초기화 라우팅 매개변수
메시지 핸들러 라우팅 객체 생성
1
2new Routing(String method,
Object map);
호출 매개변수:
- method: 문자열, 지정http요청 방법, "*"는 모든 방법을 허용합니다.
- map: 객체, 초기화 라우팅 매개변수
멤버 함수
append
기존 라우팅 개체에서 규칙을 추가합니다. 추가한 후에는 원래 경로가 지워집니다.
1Routing Routing.append(Routing route);
호출 매개변수:
- route: 라우팅, 초기화된 라우팅 객체
결과 반환:
- Routing, 경로 객체 자체를 반환합니다.
라우팅 규칙 세트 추가
1Routing Routing.append(Object map);
호출 매개변수:
- map: 객체, 라우팅 매개변수
결과 반환:
- Routing, 경로 객체 자체를 반환합니다.
라우팅 규칙 추가
1
2Routing Routing.append(String pattern,
Handler hdlr);
호출 매개변수:
- pattern: 문자열, 메시지 일치 형식
- hdlr:Handler, 내장 메시지 프로세서, 처리 기능, 체인 처리 배열, 라우팅 개체, 세부 정보 보기mq.Handler
결과 반환:
- Routing, 경로 객체 자체를 반환합니다.
라우팅 규칙 추가
1
2
3Routing Routing.append(String method,
String pattern,
Handler hdlr);
호출 매개변수:
- method: 문자열, 지정http요청 방법, "*"는 모든 방법을 허용하고, "host"는 가상 도메인 이름을 지정합니다.
- pattern: 문자열, 메시지 일치 형식
- hdlr:Handler, 내장 메시지 프로세서, 처리 기능, 체인 처리 배열, 라우팅 개체, 세부 정보 보기mq.Handler
결과 반환:
- Routing, 경로 객체 자체를 반환합니다.
host
그룹 추가http도메인 이름 라우팅 규칙
1Routing Routing.host(Object map);
호출 매개변수:
- map: 객체, 라우팅 매개변수
결과 반환:
- Routing, 경로 객체 자체를 반환합니다.
수락 추가http도메인 이름 라우팅 규칙
1
2Routing Routing.host(String pattern,
Handler hdlr);
호출 매개변수:
- pattern: 문자열, 메시지 일치 형식
- hdlr:Handler, 내장 메시지 프로세서, 처리 기능, 체인 처리 배열, 라우팅 개체, 세부 정보 보기mq.Handler
결과 반환:
- Routing, 경로 객체 자체를 반환합니다.
all
모두 수락하려면 그룹을 추가하세요.http메소드 라우팅 규칙
1Routing Routing.all(Object map);
호출 매개변수:
- map: 객체, 라우팅 매개변수
결과 반환:
- Routing, 경로 객체 자체를 반환합니다.
모두 허용하려면 한 줄을 추가하세요.http메소드 라우팅 규칙
1
2Routing Routing.all(String pattern,
Handler hdlr);
호출 매개변수:
- pattern: 문자열, 메시지 일치 형식
- hdlr:Handler, 내장 메시지 프로세서, 처리 기능, 체인 처리 배열, 라우팅 개체, 세부 정보 보기mq.Handler
결과 반환:
- Routing, 경로 객체 자체를 반환합니다.
get
GET 메소드 라우팅 규칙 세트 추가
1Routing Routing.get(Object map);
호출 매개변수:
- map: 객체, 라우팅 매개변수
결과 반환:
- Routing, 경로 객체 자체를 반환합니다.
수락 추가httpGET 메소드 라우팅 규칙
1
2Routing Routing.get(String pattern,
Handler hdlr);
호출 매개변수:
- pattern: 문자열, 메시지 일치 형식
- hdlr:Handler, 내장 메시지 프로세서, 처리 기능, 체인 처리 배열, 라우팅 개체, 세부 정보 보기mq.Handler
결과 반환:
- Routing, 경로 객체 자체를 반환합니다.
post
승인 세트 추가httpPOST 메소드 라우팅 규칙
1Routing Routing.post(Object map);
호출 매개변수:
- map: 객체, 라우팅 매개변수
결과 반환:
- Routing, 경로 객체 자체를 반환합니다.
수락 추가httpPOST 메소드 라우팅 규칙
1
2Routing Routing.post(String pattern,
Handler hdlr);
호출 매개변수:
- pattern: 문자열, 메시지 일치 형식
- hdlr:Handler, 내장 메시지 프로세서, 처리 기능, 체인 처리 배열, 라우팅 개체, 세부 정보 보기mq.Handler
결과 반환:
- Routing, 경로 객체 자체를 반환합니다.
del
승인 세트 추가httpDELETE 메소드 라우팅 규칙
1Routing Routing.del(Object map);
호출 매개변수:
- map: 객체, 라우팅 매개변수
결과 반환:
- Routing, 경로 객체 자체를 반환합니다.
수락 추가httpDELETE 메소드 라우팅 규칙
1
2Routing Routing.del(String pattern,
Handler hdlr);
호출 매개변수:
- pattern: 문자열, 메시지 일치 형식
- hdlr:Handler, 내장 메시지 프로세서, 처리 기능, 체인 처리 배열, 라우팅 개체, 세부 정보 보기mq.Handler
결과 반환:
- Routing, 경로 객체 자체를 반환합니다.
put
PUT 메소드 라우팅 규칙 세트 추가
1Routing Routing.put(Object map);
호출 매개변수:
- map: 객체, 라우팅 매개변수
결과 반환:
- Routing, 경로 객체 자체를 반환합니다.
수락 추가httpPUT 메소드 라우팅 규칙
1
2Routing Routing.put(String pattern,
Handler hdlr);
호출 매개변수:
- pattern: 문자열, 메시지 일치 형식
- hdlr:Handler, 내장 메시지 프로세서, 처리 기능, 체인 처리 배열, 라우팅 개체, 세부 정보 보기mq.Handler
결과 반환:
- Routing, 경로 객체 자체를 반환합니다.
patch
PATCH 메소드 라우팅 규칙 세트 추가
1Routing Routing.patch(Object map);
호출 매개변수:
- map: 객체, 라우팅 매개변수
결과 반환:
- Routing, 경로 객체 자체를 반환합니다.
수락 추가httpPATCH 메소드 라우팅 규칙
1
2Routing Routing.patch(String pattern,
Handler hdlr);
호출 매개변수:
- pattern: 문자열, 메시지 일치 형식
- hdlr:Handler, 내장 메시지 프로세서, 처리 기능, 체인 처리 배열, 라우팅 개체, 세부 정보 보기mq.Handler
결과 반환:
- Routing, 경로 객체 자체를 반환합니다.
find
FIND 메소드 라우팅 규칙 세트 추가
1Routing Routing.find(Object map);
호출 매개변수:
- map: 객체, 라우팅 매개변수
결과 반환:
- Routing, 경로 객체 자체를 반환합니다.
수락 추가httpFIND 메소드 라우팅 규칙
1
2Routing Routing.find(String pattern,
Handler hdlr);
호출 매개변수:
- pattern: 문자열, 메시지 일치 형식
- hdlr:Handler, 내장 메시지 프로세서, 처리 기능, 체인 처리 배열, 라우팅 개체, 세부 정보 보기mq.Handler
결과 반환:
- Routing, 경로 객체 자체를 반환합니다.
invoke
메시지 또는 객체 처리
1Handler Routing.invoke(object v) async;
호출 매개변수:
- v:object, 처리할 메시지나 개체를 지정합니다.
결과 반환:
- Handler, 다음 프로세서로 돌아가기
toString
객체의 문자열 표현을 반환하며 일반적으로 "[Native Object]"를 반환하며 객체 자체의 특성에 따라 다시 구현될 수 있습니다.
1String Routing.toString();
결과 반환:
- String, 객체의 문자열 표현을 반환합니다.
toJSON
객체의 JSON 형식 표현을 반환하며 일반적으로 객체에 의해 정의된 읽을 수 있는 속성 컬렉션을 반환합니다.
1Value Routing.toJSON(String key = "");
호출 매개변수:
- key: 문자열, 사용되지 않음
결과 반환:
- Value, 직렬화 가능한 JSON을 포함하는 값을 반환합니다.