Объект встроенный объект

Маршрутизация объектов

Объект маршрутизации обработчика сообщений

Объект маршрутизации является основным объектом http обработки сообщений. Сервер соответствует url и способ в соответствии с настройками маршрутизации, и передает http сообщения к соответствующему процессору для завершения различных операций.

Простой маршрут может быть предоставлен непосредственно в форме объекта JSON, например:

1 2 3 4 5 6 7 8
var http = require('http'); var svr = new http.Server(8080, { '/': r => r.response.write('home'), '/help': r => r.response.write('help') }); svr.run();

Если вам нужна более сложная настройка маршрутизации, вы можете создать объект маршрутизации самостоятельно и при необходимости обработать стратегию маршрутизации

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
var 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.run();

Объект маршрутизации сопоставляет сообщение в соответствии с установленными правилами и передает сообщение первому процессору, который соответствует правилам. Правила маршрутизации, добавленные позже, сопоставляются первыми. Как создать:

1 2 3 4
var routing = new mq.Routing({ "^/func1(/.*)$": func1, "^/func2(/.*)$": func2 });

Элементы, соответствующие регулярным выражениям, изменяют атрибут value сообщения, а подэлементы сохраняются в атрибуте params сообщения. Например:

1 2 3
var routing = new mq.Routing({ "^/func1(/([0-9]+)/([0-9]+)\.html)$": func1, });

После сопоставления сообщения "/func1/123/456.html", значение == "/123/456.html", params == ["123", "456"];

Если результат сопоставления не имеет дочерних элементов, значение пустое, а params пустое. Например:

1 2 3
var routing = new mq.Routing({ "^/func1/[0-9]+/[0-9]+\.html$": func1, });

После сопоставления сообщения "/func1/123/456.html", значение == "", params == [];

Если результат сопоставления имеет несколько подпунктов на первом уровне, значение будет пустым, а params является подпунктом первого уровня. Например:

1 2 3
var routing = new mq.Routing({ "^/func1/([0-9]+)/([0-9]+)\.html$": func1, });

После сопоставления сообщения "/func1/123/456.html", значение == "", params == ["123", "456"];

Если в результате сопоставления есть только один подпункт и нет подпунктов, то этот подпункт и значение, и параметр. Например:

1 2 3
var routing = new mq.Routing({ "^/func1/([0-9]+)/[0-9]+\.html$": func1, });

После сопоставления сообщения "/func1/123/456.html" значение == "123", params == ["123"];

наследование

Конструктор

Routing

Создать объект маршрутизации обработчика сообщений

1
new Routing(Object map = {});

Параметры вызова:

  • map : объект, начальные параметры маршрутизации

Создать объект маршрутизации обработчика сообщений

1 2
new Routing(String method, Object map);

Параметры вызова:

  • method : String, указывает метод запроса http , "*" принимает все методы
  • map : объект, начальные параметры маршрутизации

Функция-член

append

Добавьте правила из существующих объектов маршрутизации, исходные маршруты будут очищены после добавления

1
Routing Routing.append(Routing route);

Параметры вызова:

  • route : Routing, инициализированный объект маршрутизации

Вернуть результат:

  • Routing , возвращает сам объект маршрутизации

Добавить набор правил маршрутизации

1
Routing Routing.append(Object map);

Параметры вызова:

  • map : объект, параметры маршрутизации

Вернуть результат:

  • Routing , возвращает сам объект маршрутизации

Добавить правило маршрутизации

1 2
Routing Routing.append(String pattern, Handler hdlr);

Параметры вызова:

  • pattern : String, формат соответствия сообщения
  • hdlr : Handler , встроенный процессор сообщений, функция обработки, массив цепной обработки, объект маршрутизации, подробности см. в mq.Handler

Вернуть результат:

  • Routing , возвращает сам объект маршрутизации

Добавить правило маршрутизации

1 2 3
Routing Routing.append(String method, String pattern, Handler hdlr);

Параметры вызова:

  • method : String, указывает метод запроса http , «*» принимает все методы, «host» указывает имя виртуального домена
  • pattern : String, формат соответствия сообщения
  • hdlr : Handler , встроенный процессор сообщений, функция обработки, массив цепной обработки, объект маршрутизации, подробности см. в mq.Handler

Вернуть результат:

  • Routing , возвращает сам объект маршрутизации

host

Добавьте набор правил маршрутизации для доменных имен http

1
Routing Routing.host(Object map);

Параметры вызова:

  • map : объект, параметры маршрутизации

Вернуть результат:

  • Routing , возвращает сам объект маршрутизации

Добавьте правило маршрутизации, которое принимает доменные имена http

1 2
Routing Routing.host(String pattern, Handler hdlr);

Параметры вызова:

  • pattern : String, формат соответствия сообщения
  • hdlr : Handler , встроенный процессор сообщений, функция обработки, массив цепной обработки, объект маршрутизации, подробности см. в mq.Handler

Вернуть результат:

  • Routing , возвращает сам объект маршрутизации

all

Добавьте набор правил маршрутизации, которые принимают все методы http

1
Routing Routing.all(Object map);

Параметры вызова:

  • map : объект, параметры маршрутизации

Вернуть результат:

  • Routing , возвращает сам объект маршрутизации

Добавьте правило маршрутизации, которое принимает все методы http

1 2
Routing Routing.all(String pattern, Handler hdlr);

Параметры вызова:

  • pattern : String, формат соответствия сообщения
  • hdlr : Handler , встроенный процессор сообщений, функция обработки, массив цепной обработки, объект маршрутизации, подробности см. в mq.Handler

Вернуть результат:

  • Routing , возвращает сам объект маршрутизации

get

Добавить набор правил маршрутизации метода GET

1
Routing Routing.get(Object map);

Параметры вызова:

  • map : объект, параметры маршрутизации

Вернуть результат:

  • Routing , возвращает сам объект маршрутизации

Добавьте правило маршрутизации, которое принимает метод http GET

1 2
Routing Routing.get(String pattern, Handler hdlr);

Параметры вызова:

  • pattern : String, формат соответствия сообщения
  • hdlr : Handler , встроенный процессор сообщений, функция обработки, массив цепной обработки, объект маршрутизации, подробности см. в mq.Handler

Вернуть результат:

  • Routing , возвращает сам объект маршрутизации

post

Добавьте набор правил маршрутизации, которые принимают метод http POST

1
Routing Routing.post(Object map);

Параметры вызова:

  • map : объект, параметры маршрутизации

Вернуть результат:

  • Routing , возвращает сам объект маршрутизации

Добавьте правило маршрутизации, которое принимает метод http POST

1 2
Routing Routing.post(String pattern, Handler hdlr);

Параметры вызова:

  • pattern : String, формат соответствия сообщения
  • hdlr : Handler , встроенный процессор сообщений, функция обработки, массив цепной обработки, объект маршрутизации, подробности см. в mq.Handler

Вернуть результат:

  • Routing , возвращает сам объект маршрутизации

del

Добавьте набор правил маршрутизации, которые принимают метод http DELETE.

1
Routing Routing.del(Object map);

Параметры вызова:

  • map : объект, параметры маршрутизации

Вернуть результат:

  • Routing , возвращает сам объект маршрутизации

Добавьте правило маршрутизации, которое принимает метод http DELETE.

1 2
Routing Routing.del(String pattern, Handler hdlr);

Параметры вызова:

  • pattern : String, формат соответствия сообщения
  • hdlr : Handler , встроенный процессор сообщений, функция обработки, массив цепной обработки, объект маршрутизации, подробности см. в mq.Handler

Вернуть результат:

  • Routing , возвращает сам объект маршрутизации

put

Добавьте набор правил маршрутизации метода PUT

1
Routing Routing.put(Object map);

Параметры вызова:

  • map : объект, параметры маршрутизации

Вернуть результат:

  • Routing , возвращает сам объект маршрутизации

Добавьте правило маршрутизации, которое принимает метод http PUT

1 2
Routing Routing.put(String pattern, Handler hdlr);

Параметры вызова:

  • pattern : String, формат соответствия сообщения
  • hdlr : Handler , встроенный процессор сообщений, функция обработки, массив цепной обработки, объект маршрутизации, подробности см. в mq.Handler

Вернуть результат:

  • Routing , возвращает сам объект маршрутизации

patch

Добавить набор правил маршрутизации PATCH

1
Routing Routing.patch(Object map);

Параметры вызова:

  • map : объект, параметры маршрутизации

Вернуть результат:

  • Routing , возвращает сам объект маршрутизации

Добавьте правило маршрутизации, которое принимает метод http PATCH

1 2
Routing Routing.patch(String pattern, Handler hdlr);

Параметры вызова:

  • pattern : String, формат соответствия сообщения
  • hdlr : Handler , встроенный процессор сообщений, функция обработки, массив цепной обработки, объект маршрутизации, подробности см. в mq.Handler

Вернуть результат:

  • Routing , возвращает сам объект маршрутизации

find

Добавить набор правил маршрутизации FIND метода

1
Routing Routing.find(Object map);

Параметры вызова:

  • map : объект, параметры маршрутизации

Вернуть результат:

  • Routing , возвращает сам объект маршрутизации

Добавьте правило маршрутизации, которое принимает метод http FIND

1 2
Routing Routing.find(String pattern, Handler hdlr);

Параметры вызова:

  • pattern : String, формат соответствия сообщения
  • hdlr : Handler , встроенный процессор сообщений, функция обработки, массив цепной обработки, объект маршрутизации, подробности см. в mq.Handler

Вернуть результат:

  • Routing , возвращает сам объект маршрутизации

invoke

Обработка сообщения или объекта

1
Handler Routing.invoke(object v) async;

Параметры вызова:

  • v : object , укажите сообщение или объект для обработки

Вернуть результат:

  • Handler , возврат к следующему процессору

toString

Возвращает строковое представление объекта, обычно возвращает «[Native Object]», объект может быть переопределён согласно его собственным характеристикам

1
String Routing.toString();

Вернуть результат:

  • String , возвращает строковое представление объекта

toJSON

Возвращает JSON-представление объекта, как правило, возвращает коллекцию читаемых атрибутов, определенных объектом

1
Value Routing.toJSON(String key = "");

Параметры вызова:

  • key : строка, не используется

Вернуть результат:

  • Value , возвращает значение, содержащее сериализуемый JSON