| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- import http from 'http';
- import {HttpMethod, TrieRouter} from '@e22m4u/js-trie-router';
- import {
- HttpData,
- TrieRouterDataMapper,
- } from '@e22m4u/js-trie-router-data-mapper';
- const router = new TrieRouter();
- router.useService(TrieRouterDataMapper);
- // регистрация маршрута для проверки
- // проекции возвращаемого объекта
- router.defineRoute({
- method: HttpMethod.GET,
- path: '/responseProjection',
- meta: {
- dataMap: {
- response: {
- source: HttpData.RESPONSE_BODY,
- schema: 'number',
- projection: {foo: true, bar: false},
- },
- },
- },
- handler: () => {
- return {foo: 10, bar: 20, baz: 30};
- },
- });
- // создание экземпляра HTTP сервера
- // и подключение обработчика запросов
- const server = new http.Server();
- server.on('request', router.requestListener);
- // прослушивание входящих запросов
- // на указанный адрес и порт
- const port = 3000;
- const host = '0.0.0.0';
- server.listen(port, host, function () {
- const cyan = '\x1b[36m%s\x1b[0m';
- console.log(cyan, 'Server listening on port:', port);
- console.log(
- cyan,
- 'Open in browser:',
- `http://${host}:${port}/responseProjection`,
- );
- });
|