Size: a a a

NodeUA - JavaScript and Node.js in Ukraine

2020 August 10

Б

Богдан in NodeUA - JavaScript and Node.js in Ukraine
Timur Shemsedinov
Я знаю в ноде гораздо больше проблем, чем те, кто ее любят или ненавидят
Интересно а что это за проблемы? И можно ли избежать этих проблем если вместо ноды взять чистый v8 и просто пробросить несколько системных вызовов линукса (epoll, read, write и т.д) ? Поскольку сам линукс предоставляет синхронную модель работы с io то для v8 это будет простой блокирующий вызов и никаких абстракций вроде эвент-лупа поверх v8 городить не нужно - будет просто синхронная обработка различных асинхронных событий прямо из js - примерно так
while(true){
 const eventsCount = epoll_wait(...);
 for(let i = 0; i < eventsCount; i++){
    //находим сокет по файловом дескриптору события и вызываем обработчики
   socketHandlersMap.get(events[i].fd).forEach(fn=>fn())
 }
}
источник

TS

Timur Shemsedinov in NodeUA - JavaScript and Node.js in Ukraine
Богдан
Интересно а что это за проблемы? И можно ли избежать этих проблем если вместо ноды взять чистый v8 и просто пробросить несколько системных вызовов линукса (epoll, read, write и т.д) ? Поскольку сам линукс предоставляет синхронную модель работы с io то для v8 это будет простой блокирующий вызов и никаких абстракций вроде эвент-лупа поверх v8 городить не нужно - будет просто синхронная обработка различных асинхронных событий прямо из js - примерно так
while(true){
 const eventsCount = epoll_wait(...);
 for(let i = 0; i < eventsCount; i++){
    //находим сокет по файловом дескриптору события и вызываем обработчики
   socketHandlersMap.get(events[i].fd).forEach(fn=>fn())
 }
}
Слишком много их, и ивентлуп в эти проблемы не входит. Вы мои лекции по ноде смотрели? Сейчас реализация стримов Readable/Writable плохая, есть проблемы с тредами, например подгрузка бинарных модулей в треды. Нет реализации абстракций параллельного программирования (семафоров, мьютексов и т.д.) и еще список на 2 страницы.
источник
2020 August 11

D

Denys in NodeUA - JavaScript and Node.js in Ukraine
TLDR: голосование о дефолтном поведении для unhandled rejections в конце статьи
https://medium.com/@nodejs/node-js-promise-reject-use-case-survey-98e3328340c9
источник

K

KR1470R in NodeUA - JavaScript and Node.js in Ukraine
привіт всім, не підскажете, як зконвертувати відповідь https запиту в utf-8?
источник

K

KR1470R in NodeUA - JavaScript and Node.js in Ukraine
просто виводить hex
https.get( 'https://link', function( res ){
 res.on( 'data', function( data ){
   console.log(data)
 });
});
источник

A

Alexander in NodeUA - JavaScript and Node.js in Ukraine
KR1470R
просто виводить hex
https.get( 'https://link', function( res ){
 res.on( 'data', function( data ){
   console.log(data)
 });
});
это не весь ответ, это часть ответа типа Buffer.
источник

K

KR1470R in NodeUA - JavaScript and Node.js in Ukraine
Alexander
это не весь ответ, это часть ответа типа Buffer.
а як получити повну відповідь?
источник

A

Alexander in NodeUA - JavaScript and Node.js in Ukraine
KR1470R
а як получити повну відповідь?
источник

DL

Dml Levon in NodeUA - JavaScript and Node.js in Ukraine
источник

K

KR1470R in NodeUA - JavaScript and Node.js in Ukraine
оо, дуже вдячний
источник

D

Denys in NodeUA - JavaScript and Node.js in Ukraine
fwiw это не очень хорошее решение (но простое), потому что не поддерживает backpressure, читает все сразу, не хендлит ошибки нормально и тд

если хочешь юзать стримы вручную то лучше использовать .on('readable' и тд но это сложно и там много деталей

простое решение https://nodejs.org/api/stream.html#stream_readable_symbol_asynciterator если есть асинк фя и там все за тебя сделано
источник

M

Maxim in NodeUA - JavaScript and Node.js in Ukraine
Node.js Technical Steering Committee собирается принять решение о том, как должна работать обработка непойманных отклоненных промисов с помощью process.on('unhandledRejection’). Такой приём помогает обнаружить утечку ресурсов. Перед принятием решения, TSC проводит опрос разработчиков.
источник

NK

ID:0 in NodeUA - JavaScript and Node.js in Ukraine
Веб-стандарты сообщают: пансионат "Метархия" ждет вас!
https://youtu.be/-FSA3nbEQOE?t=68
источник
2020 August 12

Р

Руслан in NodeUA - JavaScript and Node.js in Ukraine
ID:0
Веб-стандарты сообщают: пансионат "Метархия" ждет вас!
https://youtu.be/-FSA3nbEQOE?t=68
Авторы рассказывают о том что должен знать фронтенд-программист? Что-то вроде must-listen для фронтендера?
источник

M

Miseo in NodeUA - JavaScript and Node.js in Ukraine
Коллеги, вопрос про Редис, уверен что поможете.

Есть сервис который получает данные, временно в монгу я писал так:

база данных (группа) => 500 коллекций (существенно отличающихся) => много объектов, в формате:
{
time: 21:52,
arrUp: [{},{},{}],
arrDown: [{},{},{}],
}


Сейчас настал момент заменить монгу редисом и оказалось что не всё так тривиально.

Как мне правильно структурировать данные если, я по логике мне надо создать 500 баз. 0_о

но дело в том что это надо еще и повторить 50 раз.

Как правильно данные структурировать в редис?
источник

M

Miseo in NodeUA - JavaScript and Node.js in Ukraine
или множить вложенность?

как в целом вложенность влияет на производительность?
источник

A

Alexander in NodeUA - JavaScript and Node.js in Ukraine
Miseo
или множить вложенность?

как в целом вложенность влияет на производительность?
Redis, на сколько я знаю, предоставляет модель записи из пары "ключ": "значение"
источник

M

Miseo in NodeUA - JavaScript and Node.js in Ukraine
Alexander
Redis, на сколько я знаю, предоставляет модель записи из пары "ключ": "значение"
Да. База, а в ней ключ и значение.
источник

A

Alexander in NodeUA - JavaScript and Node.js in Ukraine
Если вам так удобно назовите каким нибудь уникальным именем и в качестве значения можно JSON-структуру записать. Но как по мне затратно это и не оправдывает цели. Redis предназначен для более простых данных типа кеширования.
источник

M

Miseo in NodeUA - JavaScript and Node.js in Ukraine
Вот мне как раз и надо кешировать. Просто у данных вложеность есть. Группирование.
источник