> For the complete documentation index, see [llms.txt](https://willogix.gitbook.io/jsberry/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://willogix.gitbook.io/jsberry/russkii/osnovy/yadro/router.md).

# Router

ROUTER это хранилище роутов, событий (WebSockets), схем (GraphQL), а также middlewares. Вы можете добавить список роутов в вашем конфиге модуля таким образом:

```javascript
"routes": {
    "users_get": { "path": "users", "method": "get" },
}
```

где

* `users_get`имя роута что будет использовано для **ACTIONS** события
* `"path": "users"`это url по которому запрос придет с клиента на API.
* `"method": "get"`это API метод запроса (get, post, put, delete).

Для добавления роутов модуля в глобальный Router вам нужно достать ключ "routes" с конфига модуля в "index.js" файл.

```javascript
const { routes } = require('./config.json');

ROUTER.set('routes', routes);
```

Также вам нужно конвертировать ключ конфига в вид события (с точкой вместо нижнего подчеркивания) для использования в ACTIONS.

```javascript
const { users_get } = utils.convertkeysToDots(routes); // now users_get is a string 'users.get'

ACTIONS.on(users_get, () => {});
```

Как вы видите - ROUTER имеет метод `set` который добавляет роуты с конфига модуля в глобальный ROUTER. Если вы хотите просмотреть список назначеных роутов - вы можете вызвать метод `get`:

```javascript
ROUTER.get('routes');
```

Также назначения работают не только для роутов, а и для socket событий, схем и middlewares.
