• Как загрузить файл на сервер с помощью koa?

    megafax
    @megafax
    web-программист
    Можете использовать busboy в нужном мидлваре. И еще не забудьте в форме указать enctype
    Ответ написан
    Комментировать
  • Как загрузить файл на сервер с помощью koa?

    yellow79
    @yellow79
    Senior Software Engineer
    Есть замечательная библиотечка, которая занимается как раз этими делами. Не только в контексте koa

    https://www.npmjs.com/package/form-data
    Ответ написан
    Комментировать
  • Как получить чистые данные #sequelize?

    Negezor
    @Negezor
    Senior Shaurma Developer
    const model = await Model.findById(...);
    
    const data = model.toJSON();
    
    console.log(data);
    Ответ написан
    6 комментариев
  • Почему async/await в Array.prototype.map работает как-то не предсказуемо(для меня)?

    0xD34F
    @0xD34F Куратор тега JavaScript
    Такое ощущение будто в .map асинхронная функция не дожидается своих await, а сразу возвращает промис.

    Так точно. Функция, переданная в map, вызывается без всяких await'ов.

    Хотите массив со своими удвоенными значениями - используйте Promise.all:

    const arr = await Promise.all([1, 2, 3, 4, 5].map(async (value) => 2 * await asyncThing(value)));
    
    console.log(arr); // [2, 4, 6, 8, 10]
    Ответ написан
    1 комментарий
  • Как сделать middleware для Sequelize?

    Negezor
    @Negezor
    Senior Shaurma Developer
    Используйте хуки

    Пример из своего проекта
    5a420d97a0d1c523105590.png
    Ответ написан
    Комментировать
  • Почему не все серверы пишутся на Node js?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    1. Принципиальных качественных преимуществ у node.js перед остальными языками нет, как впрочем и недостатков. Просто yet another язык со своими особенностями. Соответственно если в вопросе заменить node.js на php/ruby/python итд - ничего не изменится.
    Вопрос по сути абстрактный "почему все не перешли на язык %%%%%"

    2. Ответ на абстрактный вопрос:
    а) Потому что существует огромное количество legacy кода который нужно поддерживать. Работы по поддержке и развитию существующего кода на порядок больше чем написания с нуля нового
    б) Потому что у разработчиков есть свой стек любимых технологий, изменять который без явных экономических причин основная масса не готова
    в) Потому что умные технические менеджеры выбирают стек технологий проекта исходя из имеющихся под рукой разработчиков и легкости поиска и заменимости оных.

    UPD
    hbrmdc
    У NodeJS есть уникальные и очень весомые преимущества, которых нет ни у одного другого языка. Например то, что это JS, и, следовательно, нет необходимости разучивать лишние языки - можно весь webapp писать на js.
    Личные предпочтения обоснованные привычками - это не имеющий значения аргумент в данном вопросе.

    1) Есть отличия, да. Только не те о которых Вы пишите. То что это "JS" вообще ни на что не влияет.
    JS хорошо знают фронтендщики - а кто пустит фронтэндщика к внутренней архитектуре? Там подход совершенно другой нужен, другие навыки, другое понимание как это все работает. Просто пересадить человека с фронта на бек - нельзя.

    На самом деле основные отличия другие:
    Постоянно живущий процесс, фактическая однопоточность. В зависимости от задачи - это может быть и плюсом и минусом. Условно для какого нибудь сокет-сервера - плюс (активно используем на живых проектах). Для middleware - я бы подумал. Для нагруженного сервиса с расчетами - точно нет.

    2) Личные предпочтения обоснованные привычками это основной аргумент.
    Я вот умею в php, умею в ноду, умею в еще десяток умных слов.
    Мне нужна новая команда на новый проект.
    Я открываю hh и что я вижу: node.js 279 резюме из которых половина фронтэндщики.
    PHP - 9613 резюме. Даже если 90% разработчиков PHP на hh - уроды которых к коду нельзя подпускать на пушечный выстрел - останется все равно в 3 раза больше чем есть node.js.
    Собственно на этом выбор и закончен.

    На малопопулярных языках пишут в случаях:
    a) это мелкий сервис с неявными перспективами который можно переписать за неделю
    б) это проект "для души" разработчика.

    Получается замкнутый круг на самом деле.
    Менеджер смотрит резюме, резюме на node.js нет =>
    Менеджер не начнет проект на node.js =>
    Не возникнет вакансия на node.js =>
    Разработчик анализируя вакансии не увидит вакансий на node.js =>
    Разработчик будет учить что то другое =>
    Менеджер смотрит резюме, резюме на node.js нет...

    Переломить ситуацию могут только очень крупные игроки обладающие возможностями формирования рынка (например Apple и Swift), и то не со 100% гарантией (samsung&c и Tizen)
    Ответ написан
    13 комментариев
  • Что означает однопоточность Node.js?

    @emp1re
    Однопоточность не касаеться самого процесора, в процесоре или других просецах могут выполнять N задач.
    Event loop это способ передачи задач процесору/процесам/сервисам. Есть очереди со своими правилами и приорететностью, сылки в памяти на задачи которые ждут результа вычисления.
    Однопоточность не становиться многопоточностью через кластеризацию. Это всего лиш клон вашего приложения который занимает свободное ядро. Это паралельность.
    Node очень просто в скалировании, поднятии и распределении нагрузки. Так что имеено для этого и используют все большие компании.
    Ответ написан
    2 комментария