Маршрутизация объектов
Объект маршрутизации обработчика сообщений
Объект маршрутизации — это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();
Если вам нужна более сложная настройка маршрутизации, вы можете создать объект Routing самостоятельно и при необходимости обрабатывать стратегию маршрутизации:
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"];
Если совпадающий результат не имеет дочерних элементов, значение пустое и параметры пустые. Например:
1
2
3var routing = new mq.Routing({
"^/func1/[0-9]+/[0-9]+\.html$": func1,
});
После сопоставления сообщения "/func1/123/456.html", value == "", params == [];
Если результат сопоставления имеет несколько подэлементов на первом уровне, значение пустое, а параметры — это подэлемент первого уровня. Например:
1
2
3var routing = new mq.Routing({
"^/func1/([0-9]+)/([0-9]+)\.html$": func1,
});
После сопоставления сообщения "/func1/123/456.html", value == "", params == ["123", "456"];
Если совпадающий результат имеет только один подраздел и не имеет подчиненных подразделов, этим подразделом являются и значение, и параметры. Например:
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Метод запроса, "*" принимает все методы, "хост" указывает имя виртуального домена.
- 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, возвращает сам объект маршрута
Добавить согласиеhttpПравила маршрутизации метода GET
1
2Routing Routing.get(String pattern,
Handler hdlr);
Параметры звонка:
- pattern: строка, формат соответствия сообщения.
- hdlr:Handler, встроенный процессор сообщений, функция обработки, массив обработки цепочек, объект маршрутизации, подробнее см.mq.Handler
Результаты возврата:
- Routing, возвращает сам объект маршрута
post
Добавить набор акцептовhttpПравила маршрутизации метода POST
1Routing Routing.post(Object map);
Параметры звонка:
- map: Объект, параметры маршрутизации
Результаты возврата:
- Routing, возвращает сам объект маршрута
Добавить согласиеhttpПравила маршрутизации метода POST
1
2Routing Routing.post(String pattern,
Handler hdlr);
Параметры звонка:
- pattern: строка, формат соответствия сообщения.
- hdlr:Handler, встроенный процессор сообщений, функция обработки, массив обработки цепочек, объект маршрутизации, подробнее см.mq.Handler
Результаты возврата:
- Routing, возвращает сам объект маршрута
del
Добавить набор акцептовhttpУДАЛИТЬ правила маршрутизации метода
1Routing Routing.del(Object map);
Параметры звонка:
- map: Объект, параметры маршрутизации
Результаты возврата:
- Routing, возвращает сам объект маршрута
Добавить согласиеhttpУДАЛИТЬ правила маршрутизации метода
1
2Routing Routing.del(String pattern,
Handler hdlr);
Параметры звонка:
- pattern: строка, формат соответствия сообщения.
- hdlr:Handler, встроенный процессор сообщений, функция обработки, массив обработки цепочек, объект маршрутизации, подробнее см.mq.Handler
Результаты возврата:
- Routing, возвращает сам объект маршрута
put
Добавьте набор правил маршрутизации метода PUT.
1Routing Routing.put(Object map);
Параметры звонка:
- map: Объект, параметры маршрутизации
Результаты возврата:
- Routing, возвращает сам объект маршрута
Добавить согласиеhttpПравила маршрутизации метода PUT
1
2Routing Routing.put(String pattern,
Handler hdlr);
Параметры звонка:
- pattern: строка, формат соответствия сообщения.
- hdlr:Handler, встроенный процессор сообщений, функция обработки, массив обработки цепочек, объект маршрутизации, подробнее см.mq.Handler
Результаты возврата:
- Routing, возвращает сам объект маршрута
patch
Добавьте набор правил маршрутизации метода PATCH.
1Routing Routing.patch(Object map);
Параметры звонка:
- map: Объект, параметры маршрутизации
Результаты возврата:
- Routing, возвращает сам объект маршрута
Добавить согласиеhttpПравила маршрутизации метода PATCH
1
2Routing Routing.patch(String pattern,
Handler hdlr);
Параметры звонка:
- pattern: строка, формат соответствия сообщения.
- hdlr:Handler, встроенный процессор сообщений, функция обработки, массив обработки цепочек, объект маршрутизации, подробнее см.mq.Handler
Результаты возврата:
- Routing, возвращает сам объект маршрута
find
Добавьте набор правил маршрутизации метода FIND.
1Routing Routing.find(Object map);
Параметры звонка:
- map: Объект, параметры маршрутизации
Результаты возврата:
- Routing, возвращает сам объект маршрута
Добавить согласиеhttpПравила маршрутизации метода FIND
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