@nodejs_ru

Страница 844 из 2748
Denis
06.06.2017
08:02:00
Внутри одного скрипта?

Rafael
06.06.2017
08:02:10
Denis
06.06.2017
08:02:32
Экспресс юзаешь?

Rafael
06.06.2017
08:02:33
фича в том, что мне нужно написать p2p сеточку

Google
Rafael
06.06.2017
08:02:38
нет, не юзаю

поднимается локально, максиму что будет отличать это номера портов

Denis
06.06.2017
08:03:30
Несколько http.createServer внутри одного скрипта

Rafael
06.06.2017
08:04:33
сяб

MadMax
06.06.2017
08:05:44
Ребят

А что бы использывать oauth2 обязательно надо на сайте их регать?

Леха
06.06.2017
08:06:27
Функция принимает номер порта и возвращает объект app. function listen(port){ const app = express(); app.listen(/* port, host, etc */); return app; }

Естественно псевдокод ?

Klim
06.06.2017
08:08:35
А куда можно вбросить если хочу мак продать?

Леха
06.06.2017
08:08:56
/stat@combot

Combot
06.06.2017
08:08:56
combot.org/chat/-1001041204341

Таймураз
06.06.2017
08:14:21
поднимается локально, максиму что будет отличать это номера портов
Учитывай, что один порт- один инстанс приложения

Google
Vsevolod
06.06.2017
08:15:58
Почему? Можно слушать сразу несколько, не?

Таймураз
06.06.2017
08:16:26
Почему? Можно слушать сразу несколько, не?
Под инстансом имел ввиду инстанс http сервера ноды

Не процесса, а именно экземпляра http.createServer

Vsevolod
06.06.2017
08:19:42
А, ну это да :)

Rafael
06.06.2017
08:29:47
кто-то с peerjs работал?

dexofan
06.06.2017
08:34:02
Посоветуй библиотеку шоб работать с Callback API VK

Andrew
06.06.2017
09:28:30
Что использовать sequelize или node-postgres? Какие у кого предпочтения? Может есть другие варианты для node и postgres?

Vsevolod
06.06.2017
09:34:03
knex

Andrew
06.06.2017
09:37:33
ого, как много библиотек, продолжу сравнивать

Таймураз
06.06.2017
09:37:42
Пользуюсь knex относительно недолго, но вроде как покрывает все юзкейсы

Vsevolod
06.06.2017
09:39:11
Я уже достаточно давно, сначала bookshelf использовал, но по факту оказалось проще писать запросы самому :)

Таймураз
06.06.2017
09:39:29
Практически всегда проще писать запросы самому

А когда переписываешь чужой код- тем более

ребят, а бабель умеет чистить код от if(false) {}?

Andrew
06.06.2017
09:46:23
касательно вопроса сравнения, вот что нашел для поверхностного сравнения https://npmcompare.com/compare/bookshelf,knex,sequelize

Vsevolod
06.06.2017
09:48:38
ну просто seq и bookshelf это орм, а knex - просто квери билдер

Таймураз
06.06.2017
09:51:45
касательно вопроса сравнения, вот что нашел для поверхностного сравнения https://npmcompare.com/compare/bookshelf,knex,sequelize
Если с нуля разворачиваешь проект, то в сторону sequelize смотри, насчёт bookshelf ничего конкретного сказать не могу На knex удобно сложные запросы собирать, но это с тем учётом, что ты можешь в SQL

Andrew
06.06.2017
09:53:40
да, с нуля. С SQL не работал. Только вчера первые шаги сделал. Вроде понятно. Еще есть одна задача портировать/синхронизировать данные из baas

Andrew
06.06.2017
09:56:04
благодарю за совет

Google
Dmitry ?
06.06.2017
10:04:48
ребят, а бабель умеет чистить код от if(false) {}?
Плагины всякие есть https://babeljs.io/docs/plugins/minify-dead-code-elimination/

Таймураз
06.06.2017
10:05:08
Плагины всякие есть https://babeljs.io/docs/plugins/minify-dead-code-elimination/
Уже нашел его, буду тестить, что он с условиями делает

Ilya
06.06.2017
10:06:16
Практически всегда проще писать запросы самому
Ну если надо тащить по первичному ключу то обёртка удобнее

И сильно ускоряет

findOne в моделях сиквалайза очень даже

Vsevolod
06.06.2017
10:10:58
ускоряет разработку?

или что?

Ilya
06.06.2017
10:17:02
Работу кода оно не ускорит. А замедлит.

Несущественно правда

Vsevolod
06.06.2017
10:18:09
А, блин, я что-то подумал что идет свранеие обертки типа того же кнекса и секвелайза в плане findOne :)

Ilya
06.06.2017
10:19:11
Ну сложные джойны по мне лучше писать руками. Я так лучше понимаю, что я делаю

Ilya
06.06.2017
10:19:35
А простой селект и апсерт пусть делает обёртка

Vsevolod
06.06.2017
10:22:58
Да, я из-за сложны х джойнов и начал кнекс использовать, а потом вообще на него перешел, ибо нет смысла делать new Account().find({email}) если можно сделать селект через кнекс, выбрать нужные поля сразу и тп

Andrew
06.06.2017
10:24:03
Попробуй bookshelf. Убьешь день, зато поймёшь, что тебе точно нужно
а как с помощью bookshelf выставить permissions на уровне таблицы и на уровне строки для разных ролей?

Таймураз
06.06.2017
10:25:35
а как с помощью bookshelf выставить permissions на уровне таблицы и на уровне строки для разных ролей?
Цитата ... насчёт bookshelf ничего конкретного сказать не могу... Конец цитаты

Vsevolod
06.06.2017
10:26:11
это же на уровне базы решается?

Andrew
06.06.2017
10:26:57
да, на уровне базы тоже можно прописывать https://i.imgur.com/UfegsNR.png

Таймураз
06.06.2017
10:27:54
да, на уровне базы тоже можно прописывать https://i.imgur.com/UfegsNR.png
У knex было что-то для разворачивания таблиц

Google
Alexander
06.06.2017
11:00:37
pg-promise

Что использовать sequelize или node-postgres? Какие у кого предпочтения? Может есть другие варианты для node и postgres?

https://github.com/vitaly-t/pg-promise

Таймураз
06.06.2017
11:16:19
pg-promise
knex из-под коробки с промисами

Ilya
06.06.2017
11:19:39
Да все ща уже на промисах

Charles
06.06.2017
11:54:37
ребят, для периодических обновлений состояния небольших независимых объектов коих будет over9000 (не факт что однотипных) в одном инстансе ноды что лучше - заюзать что-нибудь cron'like (node-cron, later) и реализовать функцию update как в unity3d или все таки продолжать использовать таймеры?

считайте что у меня онлайн игра (нет конечно, но похоже крайне в этом моменте)

я прост хз как с точки зрения дизайна правильнее будет

Admin
ERROR: S client not available

Vsevolod
06.06.2017
11:55:48
а обьекты у тебя где? в памяти?

Charles
06.06.2017
11:56:00
да, еще скидываются в кэш и персистятся

в кэш в редиску и в монгу на постоянку

но в памяти только текущее состояние

Vsevolod
06.06.2017
11:56:31
а апдейт один на всех или у каждого свой7

время апдейт*

Charles
06.06.2017
11:56:41
у каждого предполагается

ну может конечно потом сбрасывать однотипные объекты в один пул по какому-либо признаку чтоб всем скопом обновлять - но до этого еще далеко, пока что не буду делать, не успею

хотя кардинально наличие такого пула ничего собственно по сути не меняет) один хрен будет update у всех звать, если cron'like подход использовать

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

Vsevolod
06.06.2017
11:59:36
Я с тким не сталкивался, но наверное надо бы отдельный сервис мутить, типа скедулера, куда добавлять задачи на обновление и оно бы обновляло в монге-редисе для каждого

Google
Vsevolod
06.06.2017
11:59:51
а там уже можно и на таймерах и на кроне или взять какой-то таск раннер

Charles
06.06.2017
12:00:09
так в монге/редиске они и так обновляются через шину. мне их самих обновлять надо))) как раз в памяти

ну то есть у них у самих есть логика которая по истечении или раз в какое-то время должна отрабатывать. в монгу и редиску через pub-sub я обновления скидываю и так

Vsevolod
06.06.2017
12:01:18
ну так в приложухе подпишись на шину и обновляй когда в нее что-то придет

Charles
06.06.2017
12:01:39
та не

ща

function Some(name) { this.name = name; this.doSomething = () => {}; this.doSomethingElse = () => {}; this.interval = setInterval(() => { this.doSomething(); }, 1000); this.setTimeout(() => { this.doSomethingElse(); }, 5 *1000); }

Vsevolod
06.06.2017
12:05:01
Если у тебя уже есть шина, по которой приходят апдейты в другое место, почему ее же не прикрутить сюда

Charles
06.06.2017
12:05:03
допустим вот так. могу привести пример - представим себе что это стадо кроликов. живет само по себе, боты, и раз в какое-то время что-то делают. может быть сложная логика, могут прилетать различные внешние принудительные (локация снесена) воздействия, могут внутренние

Andrew
06.06.2017
12:05:22
pg-promise
Так то сам pg тоже поддерживает промисы

Charles
06.06.2017
12:05:41
Всеволод, да есть она там) вопрос не в том как изменения этих объектов стянуть, а как их эмитить.

Charles
06.06.2017
12:06:09
через функцию update которая вызывается либо в loop'е либо кроном, либо в колбэках на таймерах вешать

ну там в принципе можно и реляционку прикрутить, модуль отдельный есть, IoC сделал, DI тоже

но это не суть)))

Vsevolod
06.06.2017
12:08:23
подпишись в каждом обьекте на шину, да и все

Charles
06.06.2017
12:15:48
Ты все таки не совсем понял мой вопрос. Мож я хреново сформулировал, если было непонятно - извиняюсь. Я подписан. уже. Все эти объекты, далее - кролики, инстанцируются на лужайке, и она хранится в памяти. Модуль лужайки припочкован к шине, если приходят внешние сигналы (пожар нахуй!), кролики это считывают и бегут. Если кролик уснул или сдох - это тоже подается на шину. Вопрос в том, что кролик раз в день спит (инфа о том что ему надо спать ниоткуда не прилетает, это в нем самом происходит). Функция сон должна вызываться примерно как в unity3d, то есть через update/fixed update, которая вешается глобально на весь инстанс кролдика и внутри мы прописываем что нам надо делать (спать, жрать, трахаться), И эту функцию мы вызываем с помощью cron'like штуки, которая посылает нам запрос на лужайку типа "всем обновится, сутки прошли"? Или мы делаем отдельные таймауты и интервалы внутри инстансов-кроликов на каждую периодическую деятельность??

надеюсь теперь понятно сформулировал

на кроликах как-то жизненно

Vsevolod
06.06.2017
12:21:47
У тебя на шине известно когда кролику спать надо или кролик сам об этом знает, а снаружи это не известно?

Страница 844 из 2748