| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- 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: {
- dataMapper: {
- response: {
- source: HttpData.RESPONSE_BODY,
- 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`,
- );
- });
|