@nodejs_ru

Страница 622 из 2748
Evgeniy
27.02.2017
17:55:30
Подскажите хорошую практику написания API для работы с сервером.

Ҫѐҏӗѫӑ
27.02.2017
17:55:31
даже 5 лет назад уже везде был Function.prototype.bind

Evgeniy
27.02.2017
17:56:02
Сейчас я написал объект который в себе содержит функции для работы

Google
Evgeniy
27.02.2017
17:56:20
Может есть какой хороший пример

Andrey
27.02.2017
20:03:32
ищу свободные уши кто мог бы послушать меня на тему реализации одной фигни...

в общем пишу будильник.

Evgeny
27.02.2017
20:04:04
Тут почти полторы тысячи таких слушателей

Andrey
27.02.2017
20:09:14
хочу чтобы будильник играл с пяти утра до десяти утра... тут всё просто ... делаю емиттер и емичу туда события "будильник включён" если время равно var nowSecondsFromMidnight = (Date.now()/1000)%(60*60*24); // -- кол во секунд с полуночи var start = (60*60*5) //5 утра var stop = (60*60*10) //10 утра if ( nowSecondsFromMidnight > start && nowSecondsFromMidnight < stop ) { myEmitter.emit('ALARM START'); } else { myEmitter.emit('ALARM STOP'); }

както так

но вот я подумал, а что если я захочу чтобы будильник играл с 22 до 5 утра

и тут такой код не проканает :(

вероятно мне придёт на помощь хранение данных будильника в виде времени старта, и продолжительности. а уж из продолжительности я смогу вычислить необходимое время остановки будильника.

) вот как обычно . сформулировал мысль и идея сразу пришла в голову )

Evgeny
27.02.2017
20:13:30
Не за что!

Andrey
27.02.2017
20:16:15
я краем носа поглядывал на эту либу https://date-fns.org/ с целью найти в ней частичное решение своей задачки... но Пока не очень нашёл )

Evgeniy
27.02.2017
20:17:09
А почему ты не проверяешь с начала события например 5 утра будильник заиграл и играет пока не наступит 10 утра

Google
Evgeniy
27.02.2017
20:17:29
Так же и 22 вечера заиграл и как только 5 утра остановил

Получать время в часах и сравнивать

Если начал то не проверять дату начала

А ожидать завершения

Andrey
27.02.2017
20:19:02
хм

пытаюсь понять

мне для моей задачи необходимо эмиттить события каждую минуту или чащще...

то есть я должен иметь функцию которая скажет мне точно сейчас именно тот самый промежуток между 22:00 и 05:00 или нет

желательно чтобы функция была чистой... потомучто я планирую что этот будильник должен нормально продолжать работать если выключить ноде-процесс и включить снова

Evgeniy
27.02.2017
20:21:58
Ну в условие добавить если время начала меньше конца то переход через 00

И по другому условию идти

Вообщем просто своё можешь дописать немного

Andrey
27.02.2017
20:22:55
о. Это конечно усложняет задачу. но выглядит тоже хорошим вариантом решения...

пожалуй просто буду сейвить время старта и продолжительность — просто так гибче... я смогу сделать продолжительность более суток без переработки алгоритма..

спасибо за обсуждение!

Evgeniy
27.02.2017
20:24:55
Своё решение всегда лучше ?

Andrey
27.02.2017
20:25:56
я просто не очень ща соображаю как это я буду 24 - 22 + 05 часов детектить .. :)

утро вечера мудренее

Vladimir
27.02.2017
20:26:59
Ну элементарная же задача

Если интервал перескает 00:00 то нужно отдельно рассматривать случай

Google
Evgeniy
27.02.2017
20:27:49
Я про то же итнаписал, что просто отдельная ветка

Но тут ограничение в сутки, а дальше дату вводить

Но это уже не будильник

?

Andrey
27.02.2017
20:33:48
да я о том же... :)) там не будильник а какаято система управления полётами )

yadro
27.02.2017
20:45:00
Ребят, выручайте, задеплоил апликуху на сокетах на heroku. Статик страничка с сокетами работает, но если подключаться на прямую ws://heroku:port не пашет.

в логи ничего не пишет, при подключении

думаю что то тут с cross domain

Nook
27.02.2017
20:50:14
Подсказочка '22:02' < '22:03'

yadro
27.02.2017
20:52:32
попробую

Andrey
27.02.2017
20:54:35
Подсказочка '22:02' < '22:03'
чот мозк не соображает )) '00:00' > '22:03' // => false

yadro
27.02.2017
20:55:21
может там wss ?
не помогло

res.header('Access-Control-Allow-Origin', '*'); res.header('Access-Control-Allow-Headers', 'Content-Type'); я сделал, опять же не пашет

Andrey
27.02.2017
20:58:53
а ты из консоли роблвал ?

кинь ссыль позырить )

yadro
27.02.2017
20:59:44
я из консоли и пробую)

что скинуть?

Andrey
27.02.2017
21:00:46
ну ссылку на хероку приложение которое не работает. )) попробуем к нему по сокету приконнектиться

https://devcenter.heroku.com/articles/node-websockets по этому мануалу делал ?

Google
yadro
27.02.2017
21:01:07
https://gomokus.herokuapp.com/

это да

первое что читал

кажется я зря это сделал)

Andrey
27.02.2017
21:04:35
яхз )

yadro
27.02.2017
21:04:41
лол

Andrey
27.02.2017
21:04:58
5.35.124.149

Admin
ERROR: S client not available

Andrey
27.02.2017
21:05:03
да

yadro
27.02.2017
21:05:07
ок

Andrey
27.02.2017
21:05:25
а какой у тя порт вебсокета ?

yadro
27.02.2017
21:06:04
38412

Andrey
27.02.2017
21:07:11
неа, всёравно не хочет... хз тогда.. а вебсокет сервер точно поднят ?

попробуй чтото простенькое типа пактеа node-websocket

а потом уже и сокетио можно ) если ноде-вебсокет заработает

yadro
27.02.2017
21:08:50
ну дак на index.html запросы работают

Andrey
27.02.2017
21:09:43
я делал так socket = new WebSocket('wss://gomokus.herokuapp.com:38412') socket.onopen = function() { alert("Соединение установлено."); }; socket.onclose = function(event) { if (event.wasClean) { alert('Соединение закрыто чисто'); } else { alert('Обрыв соединения'); // например, "убит" процесс сервера } alert('Код: ' + event.code + ' причина: ' + event.reason); }; socket.onmessage = function(event) { alert("Получены данные " + event.data); }; socket.onerror = function(error) { alert("Ошибка " + error.message); };

и смотрел чего ответит

Google
Andrey
27.02.2017
21:10:07
ничего не ответило .. ошибка и закрытие соединения

yadro
27.02.2017
21:10:37
а это через ноду?

Andrey
27.02.2017
21:13:16
не

через браузер

Andrew
27.02.2017
21:14:29
всем привет. кто нибудь работал с апи яндекс.директа и яндекс.паспорт? Можно кого нибудь попытать нубскими вопросами немного?

Artem
27.02.2017
21:16:15
А там могут возникнуть какие-то сложности?

Andrew
27.02.2017
21:17:11
Artem
27.02.2017
21:17:59
С директом не работал, к сожалению. По паспорту и деньгам все вообще просто, например

Andrew
27.02.2017
21:19:16
ок. по паспорту вопрос. можно ли с его помощью залогиниться через условное расширение хрома/оперы в яндексе?

ну то есть есть расширение в браузере, которое работает, только если юзер залогинен в яндексе. И если нет - оно предлагает через себя же залогиниться в яндексе, чтобы начать работать

Aleksey
27.02.2017
21:20:48
всем привет. кто нибудь работал с апи яндекс.директа и яндекс.паспорт? Можно кого нибудь попытать нубскими вопросами немного?
когда-то давно с директом интегрировались, ничего сложного или неожиданного, но и задачи тривильные были - управление рекламной компанией.

Nook
27.02.2017
21:32:10
чот мозк не соображает )) '00:00' > '22:03' // => false
const now = '10:00'; const alarmTimes = [['22:00', '00:30'], ['10:00', '17:00']]; alarmTimes.sort().reduce((alarm, [start, end]) => { if (start > end) { return alarm || now <= end || now >= start; } else { return alarm || now >= start && now <= end; } }, false);

Andrey
27.02.2017
21:35:12
О! ща потесщу

спс

yadro
27.02.2017
21:38:03
OMG работает

просто не надо было порт указывать :DD

Aleksey
27.02.2017
22:33:23
Судя по документации yarn, результат выполнения команд должен быть одиноков: sudo yarn global add ts-node sudo npm install-g ts-node но при выполнеии npm'ом утилита ts-node доступна для запуска, а yarn'ом - нет. Это я концепцию неверно понял, или создатали пекеджа ts-node какой-то хак npm-специфичный использовали и он в yarn не работает?

*sudo npm install -g ts-node - с пробелом конечно

Andrey
27.02.2017
22:47:24
Может всё дело в неких постинсталл скриптах которые не запускаются из соображений безопасности? А терминал пробовал ребутить? Хотя врятли поможет...

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