Size: a a a

Node.js — русскоговорящее сообщество

2019 November 07

MM

Mike Mulukin in Node.js — русскоговорящее сообщество
Arkadiy Alexeev
Добрый вечер, уважаемые. Есть сервак на 0http и uws. По сути, такой сервак юзает стандартный нодовский http . С фронта делаю запрос через axios. Корс хедеры прописаны корректно. Options запрос ловлю и отвечаю. Когда делаю запрос post/put/delete методом - все работает как надо, вызывается 1 options и дальше что надо. Но когда я делаю гет-запрос - почему-то на сервер прилетают options, get, options запросы, в этом же порядке. Последний options имеет res.finished === true и прописанные в res при первом options хедеры, поэтому процесс идет некорректный с ним. Очевидно можно отловить и прикрыть, но не хочется, костыльно же.  Формат ответа везде одинаковый, меняю в этом же эндпоинте метод на post например - все работает как надо. Кто-нибудь сталкивался с таким? Почему вызывается второй options запрос?
С параметрами get?
источник

A

ASPIRIN in Node.js — русскоговорящее сообщество
Sparrow
В данном случае важно, что это объект, специальные качества не затрагиваются
ну наверное так должно быть, но меня смущает что он не конвертится там както в объект а остается массимвом c методами массива которые работают не совсем очевидно
источник

A

ASPIRIN in Node.js — русскоговорящее сообщество
GG
Давно на нем? И как? Не скучаешь по функциям вскода или в каком иде ты раньше сидел
ну я уже и не помню наверное года 4 на нем сижу, не скучаю вроде не по чему. т.к. у меня есть lsp который также юзается и вскоде вроде
источник

S

Sparrow in Node.js — русскоговорящее сообщество
ASPIRIN
ну наверное так должно быть, но меня смущает что он не конвертится там както в объект а остается массимвом c методами массива которые работают не совсем очевидно
Так он не перестает от этого массивом быть
источник

A

ASPIRIN in Node.js — русскоговорящее сообщество
Sparrow
Так он не перестает от этого массивом быть
но forEach отрабатывает только для элементов с числовыми индексами, тип ну что смогу то и обойду
источник

A

ASPIRIN in Node.js — русскоговорящее сообщество
лучше бы они запретили не числовые индексы, имхо
источник

S

Sparrow in Node.js — русскоговорящее сообщество
ASPIRIN
но forEach отрабатывает только для элементов с числовыми индексами, тип ну что смогу то и обойду
Потому, что и так массив устроен, ему пофиг при обходе, что ты там ему насовал сверху
источник

S

Sparrow in Node.js — русскоговорящее сообщество
ASPIRIN
лучше бы они запретили не числовые индексы, имхо
Нельзя, это же фича объекта. А массив это объект.
источник

A

ASPIRIN in Node.js — русскоговорящее сообщество
Sparrow
Потому, что и так массив устроен, ему пофиг при обходе, что ты там ему насовал сверху
ну это звучит не очень хорошо, пихай в меня что хочешь, но потом получишь неочевидность...
источник

G

GG in Node.js — русскоговорящее сообщество
ASPIRIN
ну это звучит не очень хорошо, пихай в меня что хочешь, но потом получишь неочевидность...
(с) философия жсса
источник

A

ASPIRIN in Node.js — русскоговорящее сообщество
геттеры в v8 же вроде работают иначе https://github.com/v8/v8/blob/master/src/builtins/builtins-array.cc#L127
источник

AA

Arkadiy Alexeev in Node.js — русскоговорящее сообщество
Mike Mulukin
С параметрами get?
Что с параметрами? Вызов лишнего запроса? Нет, он аналогичен первому options, только там еще то, что я прописал в res первого. Очевидно, он как-то пробросился, хотя есть вызов res.end() на первый.
источник

A

ASPIRIN in Node.js — русскоговорящее сообщество
ASPIRIN
геттеры в v8 же вроде работают иначе https://github.com/v8/v8/blob/master/src/builtins/builtins-array.cc#L127
не, плохой пример (там тоже int -> str), видимо я не туда в сорсы глянул
источник

S

Sparrow in Node.js — русскоговорящее сообщество
ASPIRIN
ну это звучит не очень хорошо, пихай в меня что хочешь, но потом получишь неочевидность...
Добро пожаловать в джаваскрипт )
источник

A

ASPIRIN in Node.js — русскоговорящее сообщество
наверное для меня тогда такое решение самое нормальное)
источник

JD

John Doe in Node.js — русскоговорящее сообщество
Bogdan Shelomanov
но почему так? где про это почитать можно? ведь нода одно поточная
Нашёл статью объяняющую почему Node.js считается однопоточной, хотя это и не совсем так
Вспомнил что ты спрашивал


https://medium.com/@chaudharypulkit93/how-does-nodejs-work-beginner-to-advanced-event-loop-v8-engine-libuv-threadpool-bbe9b41b5bdd
источник

JD

John Doe in Node.js — русскоговорящее сообщество
Bogdan Shelomanov
тоесть если сделать 10 запросов по минуте, в общем будет 10 минут, сделать Promise all. паралельно 10 запросов нода выполнит в итоге уйдет минута?
Вот в статье по этому поводу тоже написано. i/o network делегируется никоуровневому API операционной системы, которое в свою очередь многопоточное. А нода лишь в неблокирующей манере ждёт когда это API вернёт результат. Когда результат возвращается, то срабатывает callback, который исполняется синхронно
источник

JD

John Doe in Node.js — русскоговорящее сообщество
Bogdan Shelomanov
тоесть если сделать 10 запросов по минуте, в общем будет 10 минут, сделать Promise all. паралельно 10 запросов нода выполнит в итоге уйдет минута?
И ответ на этот вопрос такой:

Если сделать 10 последовательных вызов по минуте  дожидаясь ответа прервдущего вызова, то тогда это займёт 10 минут.
А если сделать 10 последовательных вызовов не дожидаясь ответа предыдущего либо через Promise.all, то ответы придут за минуту

Исполнение callback'ов что в первом, что во втором случаях будет синхронным
источник

S

Sardorbek in Node.js — русскоговорящее сообщество
всем привет
источник

DI

Denis Izmaylov in Node.js — русскоговорящее сообщество
Moscow Node.js Meetup 10: Архитектура Node.js-приложений, Hot Reload в Node.js и секретный доклад

Друзья, это становится доброй традицией. Мы не встречались почти 11 месяцев – прошлая наша встреча была накануне Нового года и у самого Кремля. А в этом году Node.js исполнилось 10 лет, а это значит время провести юбилейный 10-й митап Msocow Node.js Meetup!

В то время, как наш чат в Telegram ( https://t.me/nodejs_ru ), посвященный разработке на Node.js уже перерос 5 000 (пять тысяч!) участников, всё больше компаний, как международных, так и российских, продолжают успешно разрабатывать решения на базе Node.js, наращивать экспертизу на production-проектах. Крупные корпорации, банки, финансовые сервисы, e-Commerce, клиентские сервисы – все здесь. Масштаб и спектр задач, которые успешно решаются с помощью Node.js продолжает расти, а новые вызовы продолжают подогревать нам не только мозги!

Эта встреча станет ещё более интересной и на этот раз пройдет при сильной поддержки от команды Leroy Merlin, известной своими развитыми архитектурными практиками и решениями в Node.js.
Совсем недавно вышла уже счастливая 13-я версия, а 12-я “улетела” в LTS. Что это значит? Поговорим при встрече.;) А заодно обсудим, что произошло у каждого из нас за год – у кого-какие успехи, боли, челленджи, а затем копнем проблему создания единой архитектуры приложения, способы её решения, посмотрим на проблемы изолированных площадок и hot-reloading модулей в Node.js.

КОГДА: 20 ноября 2019, 19:00
ГДЕ: Москва, Шаболовка, в офисе компании Leroy Merlin.

ПРОГРАММА:

19:00 - 19:25  Socializing, встречаемся, общаемся
19:25 - 19:40  Welcome & small digest (Денис Измайлов, Axept)

19:40 - 20:10  Архитектура Node.js приложения с учётом хаоса в npm (Леонид Лёвкин, Full-stack разработчик в Leroy Merlin)
npm на сегодняшний день является одним из самых крупных репозиториев. В нём присутствуют модули практически для всего, что может понадобится разработчику. Отсутствие стандартов разработки и наличие огромного количества различных способов построения интерфейсов (events, callbacks, promises) в Node.js-приложениях порождают проблему создания единой архитектуры приложения. В своём докладе я хочу рассказать об этих проблемах, а также предложить свой вариант их решения.

20:10 - 20:30 Кофе-брейк, наслаждаемся живым общением
20:30 - 21:00 Секретный доклад от очень секретного спикера;)

21:00 - 21:30 Пересобираем двигатель на лету: hot load модулей в Node.js (Павел Казанцев, Node.js-разработчик в Маркетплейс Леруа Мерлен)
Павел расскажет про боль множественных однотипных интеграций и тлен изолированных площадок у заказчика, а также жутких проблем standalone-инсталляций и как можно выползти из этого и не “испачкаться”. Мы поговорим о том, как плагины приходят на помощь – а именно про hot loading кода, а также сложности и примеры реализации на Node.js, а также подведем итоги таких решений, проанализируем плюсы и минусы.

21:30 — 22:00  Свободный микрофон, вопросы-ответы, откровения о наших болях и радости, без камер и записи Afterparty

УСЛОВИЯ УЧАСТИЯ:

1. Конференция бесплатная, но вход строго по регистрации.
2. Для того, чтобы зарегистрировать – необходимо заполнить форму по ссылке ниже, отправив таким образом заявку и дождаться приглашения.
3. Ссылка для регистрации – https://axept.timepad.ru/event/1110942/

ОСТАЛИСЬ ВОПРОСЫ?

- Появились вопросы/предложения или может даже готовы выступить с докладом на следующей конференции-митапе?
- Пишите срочно на events@axept.com или напрямую в Telegram: @DenisIzmaylov

И ЕЩЁ:

1. Подписывайтесь на канал сообщества Node.js в России, чтобы быть в курсе событий: https://t.me/NodeJSRussia
2. Вступайте в Facebook-группу: https://www.facebook.com/groups/NodeJSRussia
3. Присоединяйтесь к группе-чату русскоговорящего сообщества Node.js: https://t.me/nodejs_ru
источник