
reskwer
07.08.2018
20:48:54
транспорт по сокетам и так все могли использовать давольно давно
КРОССБРАУЗЕРНОСТЬ

Alexander
07.08.2018
20:50:14
фу, неактуален

Google

Mikhail
07.08.2018
20:50:32

Alexander
07.08.2018
20:50:51
бесполезный же, проще свои колеса писать


Andrei
07.08.2018
21:34:38
Слушай, этот вопрос не имеет смысла вообще.
WS это система грубо говоря прикладной протокол над TCP, грубо.
А socket.io это реализация что того что того на клиенте. Тебе не прийдется самому писать велосипеды.
есть нативный браузерный апи вебсокетов, часть HTML5, на нём вполне можно писать, если старое говно типа ИЕ 10- не надо поддерживать.
socket.io, sock.js и прочие, обертывают нативное апи и также предоставляют фоллбэки на лонг поллинг и другие альтернативные способы. эти либы довольно полезные, но в целом без них вполне можно обойтись, поскольку в 2018 их практическая ценность (в плане фоллбэков) невелика, т.к. большинство браузеров вебсокеты прекрасно поддерживает
с другой стороны, у них немного упрощённый синтаксис, хорошая документация и много примеров по этим либам, т.к. они много лет интенсивно использовались. socket.io вдобавок ещё и довольно легковесный, 18кб (sock.js 42k, для сравнения).


Alexander
07.08.2018
21:35:50
есть нативный браузерный апи вебсокетов, часть HTML5, на нём вполне можно писать, если старое говно типа ИЕ 10- не надо поддерживать.
socket.io, sock.js и прочие, обертывают нативное апи и также предоставляют фоллбэки на лонг поллинг и другие альтернативные способы. эти либы довольно полезные, но в целом без них вполне можно обойтись, поскольку в 2018 их практическая ценность (в плане фоллбэков) невелика, т.к. большинство браузеров вебсокеты прекрасно поддерживает
с другой стороны, у них немного упрощённый синтаксис, хорошая документация и много примеров по этим либам, т.к. они много лет интенсивно использовались. socket.io вдобавок ещё и довольно легковесный, 18кб (sock.js 42k, для сравнения).
+


derevotyan
08.08.2018
01:21:40
Здравствуйте, первый день изучаю ноду, а есть какой-нибудь простой (и, желательно, не требующий внешних библиотек) способ распарсить multipart/form-data (внутри нет файлов, только текст с данными формы)?
Строго говоря, я даже не уверена, что это мультипарт, чисто текстом мне приходит что-то типа
-----------------------------7e211431b0594
Content-Disposition: form-data; name="novice"
100
-----------------------------7e211431b0594
Content-Disposition: form-data; name="amator"
200
-----------------------------7e211431b0594
Content-Disposition: form-data; name="pro"
300
И я, конечно, могу распарсить это своими силами просто как текст, но как-то это грязновато.
(похоже, что нет)

Алексей
08.08.2018
01:57:48

Kelin
08.08.2018
01:58:12
Бля, вы прикалываетесь, какие обертки над вебсокетами в 2018
Даже писать ничего не надо, все работает без всяких socketio
Если вам так нужно поддерживать древние браузеры, то пожалуйста, а так абсолютно бесполезная и ненужная либа сейчас

Roman
08.08.2018
02:03:13

derevotyan
08.08.2018
02:32:49

енот
08.08.2018
03:29:20
как надежнее и проще защитить код приложения на ноде если его(приложение, не код) надо передавать в третьи руки?

blkmrkt
08.08.2018
03:34:56
Блджад как же отсутствие строгой типизации кусает за жеппу! Ни одного плюса объективно не вижу кроме как быстро что-то сделать на коленке. Писать на жаваскрипте хандлеры вебхуков это просто адово.
Щас баг нашел с Sequelize и пересрал - Orders.findById(id, { where: { user, state: 'PAID' } }). Чисто визуально увидел что что-то тут не так (объект с where полностью игнорится). Писать тесты для этого? Не, в следующий раз бек буду пилить на Go.

Google

Дмитрий
08.08.2018
03:44:13

blkmrkt
08.08.2018
03:45:27

Дмитрий
08.08.2018
03:45:53
Если это проблема — то проекты у тебя довольно небольшие

blkmrkt
08.08.2018
03:46:02

Дмитрий
08.08.2018
03:46:08
Тайпинги — от силы пара процентов времени затрачиваемого на проект
Типы — они для покрытия своего кода

blkmrkt
08.08.2018
03:47:26
А вот вы типизованное наречие компилируете перед деплоем, или рантайм какой используете?

енот
08.08.2018
04:00:34
как pm2 переназначить местоположение главного лог файла?

Roman
08.08.2018
04:42:41

Denis
08.08.2018
04:47:27
В случае с флоу это просто убирается весь его синтаксис и твой код остаётся твоим кодом по сути

m
08.08.2018
06:02:53
кому не сложно, скиньне пожалуйста пример роута, который бы полученное тело сувал в монгус. с правильным отловом ошибок ?

Michael ?
08.08.2018
06:37:39
function create(req, res, next) {
return Model.create(req.body)
.then((createdModel) => { … })
.catch((error) => { console.error(error); });
}
const router = require('express').Router().post(‘/create’, create);
app.use('/api/model’, router);
Как-то так

Таймураз
08.08.2018
06:38:50
Вопросы по реакту- в реакт

Nell
08.08.2018
06:50:25
Привет всем! Кто-то писал телеграм ботов? Какими пакетами пользуетесь? Нашел node-telegram-bot-api и telegraf. Какой из них лучше?)

Harry
08.08.2018
06:52:15

Nell
08.08.2018
06:53:04
Спасибо!)

Таймураз
08.08.2018
06:57:36

Nell
08.08.2018
06:58:41
Спасибо)

Google

Alexander
08.08.2018
07:00:06
как лучше зачейнить эвенты? Раньше была библиотека на промисах и при каждом событии срабатывал огромный промис. Сейчас переписал на EventEmitter и думаю разделил поведения. Как лучше собрать результат отработки событий? по аналогии с next() в express?

Yaroslav
08.08.2018
07:00:47
ибо либы делали очень похоже, но недостаточно необходимо

Alexander
08.08.2018
07:01:16
позволил коллбэку возвращать?

Yaroslav
08.08.2018
07:01:41
сделали интерфейс ивентов, но под капотом promise.all

Alexander
08.08.2018
07:01:50
так и думал
эххх
спасибо за наводку

Yaroslav
08.08.2018
07:02:17
я вот недавно задумался, что ивенты в ноде вообще не нужны - рудимент
кейсов не смог придумать с реальным использованием
про фронт, понимаю кейсы

Alexander
08.08.2018
07:02:58
ну вот ты пишешь либу типа телеграм бота

Alexander
08.08.2018
07:03:13
как сделать ее переносной и триггерить окружение на входящее сообщение например?

Yaroslav
08.08.2018
07:03:33
тебе нужен всеравно ответ
почему бы не юзать очереди

Alexander
08.08.2018
07:04:22
?

m
08.08.2018
07:04:37

Yaroslav
08.08.2018
07:05:15
?
просто кейсов, где не нужно понимать результат отработки emit я не придумал
вот и получается либо колбек, либо очереди, либо свою реализацию

m
08.08.2018
07:06:23
а как учинить субдомен subdomain.site.com/ в ноде правильно? Нашел express-subdomain, но выглядит заброшенно.

Google

Alexander
08.08.2018
07:06:40
а нода тут причем? она порты слушает
рули nginx-ом или что там у тебя в качестве балансера стоит

m
08.08.2018
07:07:43

Alexander
08.08.2018
07:07:56
а что тебе надо? nginx тоже одной строкой настраивается

m
08.08.2018
07:08:11

Alexander
08.08.2018
07:09:57
то есть, тебе надо, чтобы по site.com отрабатывала одна пачка рутов, а по subdomain.site.com другая?

Admin
ERROR: S client not available

m
08.08.2018
07:10:14

Alexander
08.08.2018
07:11:16
первое, что приходит в голову, это сделать app.use где-то наверху и парсить req.hostname, а дальше определяться, куда идти

m
08.08.2018
07:12:21

Alexander
08.08.2018
07:13:44
ну в идеальном мире это задача для nginx. он сам понимает, что кто-то бежит по сабдомену и посылает на другую ноду например. или переделывает строку запроса

m
08.08.2018
07:14:40

Alexander
08.08.2018
07:14:46

Yaroslav
08.08.2018
07:15:03
да
если позырить либы, которые делают promise/ответ для emit, то лучше уже свое написать

Eugene
08.08.2018
07:37:56
Всем привет!
Кто юзар rabbit, подскажите, как конфижить amqplib?

Yaroslav
08.08.2018
08:07:45

Eugene
08.08.2018
08:11:02
В каком плане?
ну, например в ф-цию connect можно передать options, но какие - не понятно
короче, лучше бы какую-то нормальную доку, где расписаны ф-ции с параметрами, потому что в репозитории очень не густа

Julia
08.08.2018
08:18:31
Открыть сурсы?

Eugene
08.08.2018
08:19:15

Google

Yaroslav
08.08.2018
08:25:18
советую поискать либу с промисами, иначе прийдется юзать колбеки либо самому оборачивать. в этой либе позырить примеры

Denis
08.08.2018
08:25:40

Alexander
08.08.2018
08:25:58
ну в смысле без лишних зависимостей от чего либо. просто взял и понес в другой проект

Eugene
08.08.2018
08:26:06

Denis
08.08.2018
08:27:09
Очень просто реализуются

Alexander
08.08.2018
08:28:10
так это практически и есть событийная модель

Denis
08.08.2018
08:30:18
Т.е тебе нужно просто чтобы было все сделано в nodejs каноничном стиле?

Alexander
08.08.2018
08:31:10
не совсем. коллега выше говорил о том, что эвенты - рудимент. я лишь сказал, что с ними еще можно жить комфортно
хотя решение про очереди мне понравилось

Denis
08.08.2018
08:33:20
Эвенты рудимент, да, можешь ещё посмотреть в сторону того как стримы работают(RxJS, mostjs)

Дмитрий
08.08.2018
08:44:50
Стримы — это тупик
Подход всё же является message passing и сохраняется вплоть до энтерпрайз ™️ паттернов архитектуры

енот
08.08.2018
08:49:55
чем делать обфускацию для ноды?
есть что-то автоматическое?

Nell
08.08.2018
08:51:12

енот
08.08.2018
08:51:21
мне надо максимально усложнить реверс-инженеринг