sunway174, ну если бот лишь как сервис для обслуживания микрозапросов от клиентов то да, такой сервис дествительно может быть полезен и удобен. В таком случае просто возмите nodejs или python и напишите функционал бота со всеми нужными вам плюшками. При таком подходе вы конечно лишитесь возможности "программировать" бота мышкой, но приобретете возможность реализовать любые ваши хотелки и чрезвычайное многообразие (а следовательно и гибкость) конечного продукта.
toxowa, в любое событие вы можете передать сколько угодно параметров, но обработано будет столько из них, на сколько рассчитана написанная ВАМИ функция-обработчик события заданная через myEmitter.on(...). В случае с secondListener будут обработаны всего 2 параметра события 'event'.
ИМХО: мнение о том, что телеграм боты (как впрочем и боты в других мессанджерах) способны привлечь клиентов, увеличить продажи и т.д. и т.п. это миф, придуманный пиар менеджерами мессанджеров :)))
Данное мнение сложилось из личной практики и практики моих знакомых, которые все в один голос утверждают, что хороший магазин на чат ботах, это тот магазин, который не шлет им навязчивую рекламу, и не засирает трей телефона сотнями нах... не нужных "заманчивых/выгодных предложений/акций".
Лев Забудкин, замечательно что вы имеете свое мнение, но очень плохо то, что ваше мнение не подкреплено знаниями по сути вопроса. Если кратко, то идите лесом уважаемый Лев (или идите саванной, лев все таки), nginx идеально подходит для решения подобных задач.
Sedbol, не за что. В данном примере есть один нюанс - при каждом использовании upsertItem вы будете получать новый arr с внесенными в него изменениями. Это не должно быть проблемой, но если вдруг вы где то по коду, до использования upsertItem сделали ссылку на arr (например: var arr1=arr;) а затем, после arr = upsertItem(arr, ваш_объект); обратитесь к arr1 то увидите что в ней (в arr1) изменений не произошло.
Но следует заметить что если в массиве был элемент например {id: 1, type: "text", text: "blablabla"} а мы хотим обновить на {id: 1, type: "author", name: "vasya"} то получим