pavki/hr_qa_sbs_best_bad huggingface dataset:
Вопрос: Как соединить массивы?

Лучший ответ: Object.values([ ...hours, ...first ].reduce((acc, n) => (acc[n.hour] = n, acc), {}))
для second - аналогично

Худший ответ: let hours = [
    {"hour":0, "car":0, "bike": 0},
    {"hour":1, "car":0, "bike": 0},
    {"hour":2, "car":0, "bike": 0},
    {"hour":3, "car":0, "bike": 0},
    {"hour":4, "car":0, "bike": 0},
    {"hour":5, "car":0, "bike": 0},
    {"hour":6, "car":0, "bike": 0},
    {"hour":7, "car":0, "bike": 0}
];

let first = [
    {"hour":5, "car":10, "bike": 10},
    {"hour":8, "car":20, "bike": 0},
    {"hour":9, "car":30, "bike": 0},
    {"hour":10, "car":40, "bike": 0}
];

let second = [
    {"hour":0, "car":11, "bike": 12},
    {"hour":7, "car":15, "bike": 25},
    {"hour":8, "car":20, "bike": 30},
    {"hour":9, "car":10, "bike": 30},
    {"hour":10, "car":120, "bike": 140}
];

function mergeArraysOfObjects(source, recepient, uniqueKey) {
    var result = [];

    source.forEach(function(sourceElement) { 
        var foundRecepientElement = null;
        recepient.forEach(function(recepientElement) { 
            if (recepientElement[uniqueKey] === sourceElement[uniqueKey]) {
                foundRecepientElement = recepientElement;
            }
        });

        if (foundRecepientElement !== null) {
            result.push(foundRecepientElement);
        } else {
            result.push(sourceElement);
        }
    });

    recepient.forEach(function(recepientElement) { 
        var foundSourceElement = null;
        source.forEach(function(sourceElement) { 
            if (sourceElement[uniqueKey] === recepientElement[uniqueKey]) {
                foundSourceElement = sourceElement;
            }
        });

        if (foundSourceElement === null) {
            result.push(recepientElement);
        }
    });

    return result;
}

var firstMerge = mergeArraysOfObjects(hours, first, 'hour');
var secondMerge = mergeArraysOfObjects(firstMerge, second, 'hour');Пример
Вопрос: Можно ли использовать роутер как удлиннитель?

Лучший ответ: Зачем в WAN? Используйте его как свитч, отключите только в роутере раздачу адресов и укажите для него ip адрес в диапазоне своей сети.

Худший ответ: простейший усилитель "LAN-сигнала" - хаб. но их сейчас в продаже практически нет.
так что ставь следующий по сложности - свитч.
Вопрос: Как настроить сеть в ubuntu server VirtualBox?

Лучший ответ: Используйте bridged adapter в настройках виртуальной машины
и не используйте один ip и для хоста и для гостевой ос - это может приводить к очень неочевидному поведению

Худший ответ: Как вам нужно, так и настраивайте.
Вопрос: Как сделать так что бы весь контент страницы открывался сразу?

Лучший ответ: Объединить иконки в общий спрайт.

Худший ответ: 1. Если без лоадера, то слушайте onload - и показывайте все сразу через display: block. Или анимируйте opacity и translateY от 100px до 0;2.  Получите кол-во иконок, зарезервируйте под них место на странице с заглушками (кол-во иконок = блоки с легким изображением) и потом в них грузите остальное
А вообще лоадер это круто. tobiasahlin.com/spinkit
Вопрос: Стоит ли писать текст для фотографий в инстаграм?

Лучший ответ: Да. Писать стоит, а еще стоит отвечать на комментарии. Инстаграм это не только фотографии.

Худший ответ: Советую писать, конкретно в вашем случае. Иногда можно делать лонг риды, но не увлекаться чрезмерно. Так вы налаживаете отношения со своей ЦА
Вопрос: Как получить номер элемента в массиве по клику?

Лучший ответ: var cellsArray = [ ...document.querySelectorAll('td') ];
var listener = e => document.getElementById('output').innerHTML = cellsArray.indexOf(e.target); // Создать элемент вывода надо заранее

cellsArray.forEach( cell => cell.addEventListener( 'click', listener ) );

Худший ответ: Вот, быстро накидал: https://jsfiddle.net/59d0qaee/5/
Вопрос: Как написать простой слайдер с автопрокруткой?

Лучший ответ: чтото не вижу я там слайдера
увидел -)
такую фигню можно даже на чистом CSS сделать
UPD
https://jsfiddle.net/zcqzzzn4/
не стал запариваться с красотой и точными таймингами -) просто идею донести

Худший ответ: Выбирай
Вопрос: Почему DNS выбирает не тот IP?

Лучший ответ: Коллеги, курите мануалы про DNS Round Robin и Netmask Ordering

Худший ответ: Клиентский компьютер на то и клиентский, что он ничего не выбирает, а пользуется тем, что ему дают.
В каком месте определено, что клиентский компьютер не должен видеть подсеть 10.0.0.0 ? Если два компьютера подключить к одному интерфейсу и они получат IP из подсети 10.0.0.0 то они вполне будут видеть друг друга.
Сначала подумайте над конфигурацией сети и формализуйте правила "другая сеть, которая ему недоступна.", потом задайте правильные вопросы здесь, потом нормально настройте DHCP и будет счастье
Вопрос: Какой плагин или скрипт похож на работу в данном примере?

Лучший ответ: это встроенные уведомления браузера, если вписать полю html5-аттрибут required

Худший ответ: Выше верно сказано, как аналог, можно jQuery Validation plugin поставить
Вопрос: Ресурсы по django?

Лучший ответ: Здравствуйте.
Еще ресурсов? Пожалуйста:TaskBuster Django TutorialTango With DjangoTry Django TutorialDjango PackagesClassy Class-Based ViewsAwesome DjangoGoDjangoDjango REST frameworkDjango Vanilla ViewsUPD
Не в моих правилах давать непрошеные советы, поэтому не в качестве истины в последней инстанции, а в качестве мыслей вслух:1. Как бы от такого количества материала не образовалась "каша" в голове :)2. На сегодняшний день я склоняюсь к такому варианту изучения Django с нуля:a) Django. Подробное руководство, Джейкоб-Каплан Мосс и Адриан Головатый. Почему, Зачем и Как от непосредственных создателей фреймворка. Да, немолода, но все так же актуальна. б) Руководство Django Girls. После того, как вы осилите пункт а), можете приступать к практике, и ничего проще, быстрей и понятней Django Girls на этом этапе вы не найдете.в) Django by Example + Two Scoops of Django. Создавайте что душе угодно + "шлифуйте" свои знания примерами лучших практик.
В качестве настольной и справочной книги используйте Официальную документацию.
Ну и не забывайте про сам Python, конечно.

Худший ответ: Самое актуальное тут 
https://github.com/django/django
Вопрос: Что эффективнее — один большой php файл или много маленьких в шаблонах?

Лучший ответ: Эффективнее провести нагрузочное тестирование с логированием времени обработки запросов и ключевых этапов обработки каждого запроса. Затем по итогам анализа логов выявить наиболее проблемные места и исправить недочеты, ошибки и прочее.
А еще надо сразу грамотно делать декомпозицию проекта и грамотно проектировать архитектуру системы. Кроме того, есть еще такие штуки как БД и веб-сервер/прокси/балансер и т.п., которые вносят свои задержки в обработку запроса. Еще есть очень замечательная штука, которая называется "кэширование", с которой нет необходимости каждый раз загружать данные с диска. А так же еще куча других способов ускорения PHP.

Худший ответ: Лучше подключать файл с баннерами
:-)
Хотя если основной файл маленький - можно и в нем оставить.
Это не принципиально.
Вопрос: Как проверить авторизован ли пользователь в приложении на Vue?

Лучший ответ: Я сделал немного не по науке: просто глобально v-if="auth" показываю контент, а v-if="!auth" показываю форму логина. Тогда при заходе по ссылке (например присланной через скайп) на конкретную закрытую страницу пользователь получает окно авторизации, а при успешном логине - сразу же попадает на нужную страницу, и не надо нигде запоминать, что куда надо редиректить. Естественно, на стороне сервера также проверяется, залогинен пользователь, или нет.

Худший ответ: const router = new VueRouter({
  routes: [
    {
      path: '/foo',
      component: Foo,
      beforeEnter: (to, from, next) => {
        здесь проверьте залогинен ли пользователь, если нет, то редиректите его на страницу логина
      }
    }
  ]
})
Вопрос: Как лучше сделать таблицу книг?

Лучший ответ: А у одного автора может быть много книг.
Естественно авторов в отдельную таблицу и связь многие-ко-многим через 3ю таблицу
И почитайте про нормальные формы

Худший ответ: В целом, идея такая вот
Список книг, список авторов и отдельно книга-автор. Соответственно, может быть несколько записей про книгу, но с разными авторами
_______________
BookId
BookName
_______________
AuthorId
AuthorName
_______________
Id
BookId
AuthorId
Вопрос: Как задать выполнение отложенных операций в Django?

Лучший ответ: https://docs.djangoproject.com/es/1.10/howto/custo...
+ cron который каждый день запускает команду. Самый изи вариант.

Худший ответ: Лучше всего подобные вещи, как и любые другие асинхронные задачи, реализовывать с помощью Celery.
Вопрос: Что лучше VGA в DVI-D или VGA в HDMI?

Лучший ответ: Не важно, в любом случае это будет активный костыль, преобразующий аналог в цифру.
Ответ: тот, который проще достать.

Худший ответ: А с видеокартой переходника на VGA не шло?
Какая видюха и какой там именно DVD (DVI-D с просто полосочкой или DVI-I с крестиком): если первое то только конвертером цифра-аналог, а их проще найти под HDMI и стоят они от 5-10$, если второе, то любой переходник или кабель DVI-VGA в среднем за 1-2$.
Сигналы DVI-D и HDMI практически идентичны а для конвертера в VGA вообще одинаковы и никакой разницы Вы не заметите.
Вопрос: Как правильно оценить стоимость работы дизайнера?

Лучший ответ: Адекватная - столько, сколько вы готовы потратить. 
Оценить тяжело. И зачастую стоимость обоснована опытом специалиста. Но кое-что можно вытащить из вашего Т3:1. Все это для desktop/tablet/mobile
Самое важное. Дизайнеру нужно разработать брендбук, с цветами-элементами. Нужен чтобы от платформы к платформе дизайн оставался узнаваемым. 
Диапазон от 50 до 2000 уе. Добротные результаты будут на уровне 170$2. музыкальный проигрыватель
Важно сколько экранов. На основе брендбука будет разработан дизайн для каждой платформы отдельно, учитывая наработки самих платформ. У каждой свой UX, поэтому этап обходить не стоит. Прайс на экран в райне 10$ (с учетам бренбука). У вас 1 декстоп, ios/android (телефон + планшет). Примерно 4-5 экранов. Грубо говоря: 5 устройств * 5 экранов приложения * 10$ = 250$.3.  Учитывайте стоимость работ UX специалиста, он важен и для проекта, и для дизайнера. 
Достойная работа будет сделана за 170 + 250 = 420$Главный посыл:
Смотрите портфолио специалиста, оно скажет больше любых слов. И спрашивайте цену. Когда поймаете себя на мысли что вот за такой дизайн я бы заплатил столько, и цифра совпадет со специалистом - вы нашли друг друга.

Худший ответ: Адекватной цены не будет точно )
От цены сильно зависят качество и время работы большинства дизайнеров.
Дизайнер вполне может вам "занедорого" и быстро нарисовать внешний вид.
Но без трёх состояний каждой кнопки, не предусмотреть "резину" для промежуточных разрешений, не учесть поп-апы и другие подобные тонкости.
То есть макет-то будет, но верстать его потом можно задолбаться.
Поэтому если вы хотите дешевле рынка, скажем так, вам надо расписать весь ваш интерфейс подробно, снабдить мок-апами и чеклистом для будущей проверки.
А так, дизайн плеера с плейлистами, избранным, может эквалайзером для трёх систем даже чисто по времени выйдет на месяц-два. Сколько получает в месяц специалист нужного уровня?
P.S. Единственный способ сэкономить - сделать часть работы самостоятельно.
Вопрос: Где найти удаленную стажировку для новичка PHP?

Лучший ответ: Мне 27, влился за полгода
только дома, стажировок нет, еще меньше чем джуниорской работы, а ее очень не много, все нужен мидл, просто готовы подучить...
Дома занимайтесь, изучите язык, обязательно ООП, обязательно окружение (Линукс, Композер, ГИТ) + изучайте потихоньку фреймворк (любой из Yii2, Laravel, Symfony)

Худший ответ: Тупо загуглить и посмотреть на хедхантере
Вопрос: Ctrl+shift+r через php можно?

Лучший ответ: Сделать где-нибудь 2 переменные хранящие номера версий для джс файлов и цсс. Добавлять их к урлам через знак вопроса, типа klmn.css?123. Когда что-то поменялось, менять значения. Браузер гарантированно скачает файл заново. При этом кеширование можно ставить бесконечное

Худший ответ: Предыдущий совет наиболее правилен, но вот ещё один, в html:<meta http-equiv="Cache-Control" content="no-cache">
Вопрос: Как перебрать массив у которого индекс состоит из строки?

Лучший ответ: Когда вы создаёте строковые «индексы» у объекта массива, это просто создаёт новые свойства у этого объекта, но они не являются индексами массива. Иногда говорят, «в JavaScript всё является объектом» (что не совсем так). Но массив – это как раз вполне себе объект. var a = new Array(3); // [null,null,null]
a['aaa'] = 'AAA';
a['bbb'] = 'BBB';
a.length // по-прежнему 3
Т.е. такое обращение с массивом некорректно. Все методы массива, напр. map(), reduce(), проигнорируют добавленные вами свойства.
Для вашей задачи правильнее создать вместо массива пустой объект:var ne_array = {};
ne_array['one'] = 1;
ne_array['two'] = 2;
ne_array['three'] = 3; 

for( var property in ne_array) {
  console.log( property,  ne_array[ property]);
}

Худший ответ: можно использовать Object.keys() var obj = {};

obj.one = 1;
obj.two = 2;
obj.three = 3; 

var keys = Object.keys(obj); // [ 'one', 'two', 'three' ]

keys.forEach(key => console.log(obj[key]));
Вопрос: Spring и SphinxSearch как использовать?

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

Худший ответ: В общем с толку меня сбил Hikari, с ним Shinx не работает.
Зато отлично работает commons-dbcp2 )@Bean
    public DataSource sphinxDataSource() {
        BasicDataSource dataSource = new BasicDataSource();
        dataSource.setDriverClassName("com.mysql.jdbc.Driver");
        dataSource.setUsername("");
        dataSource.setPassword("");
        dataSource.setUrl(sphinxUrl);
        return dataSource;
    }

    @Bean
    public JdbcTemplate sphinxJdbcTemplate() throws SQLException, ClassNotFoundException {
        return new JdbcTemplate(sphinxDataSource());
    }

    @Bean
    public Connection sphinxJdbc() throws SQLException, ClassNotFoundException {
        return sphinxDataSource().getConnection();
    }
Вопрос: Как узнать скорость подключения клиента к сайту и дать соответствующий контент?

Лучший ответ: Подход считаю неверным. Канал может быть и шустрым, но с платным и дорогим для пользователя трафиком. Как вариант, дайте пользователю минимальную версию и позвольте ему самому решить, надо ли ему какие-то плюшки в более высоком качестве.

Худший ответ: задача вообще широкая
с переменным успехом решают ребята типа Akamai  
из бюджетно-доступного посмотрите на cloudflare
помимо банального CDN  используются различные стили + подгрузка контента в фоне
Вопрос: С помощью чего можно создать свою интерактивную карту?

Лучший ответ: А зачем svg?
Карту положить фоном,
Заведите в базе таблицу, в которой будете хранить маркеры, с указанием координат на карте и другой полезной инфой.
Выведите циклом поверх фона (position absolute).
Стиль кружка при наведении менять через css hover
Клик обрабатывайте через jquery click
Если нужно будет при наведении подсвечивать не кружки, а именно области, то воспользуйтесь www.outsharked.com/imagemapster

Худший ответ: Ну так, на вскидку, можно сделать много слоёв (столько же, сколько районов на карте), наложить на них clip-mask и обрабатывать клик по каждому отдельному слою соответствующим образом. Там уже именуйте их как Вам удобно, добавляйте ID'шники/классы и т.д.
Вопрос: Один сайт на нескольких хостингах?

Лучший ответ: Это или криво или не тривиально.На Хабре есть группа статей фирмы ivi.ru.
Там про это очень хорошо разжевано - про самые разные методы, про плюсы и минусы.
В частности:https://habrahabr.ru/company/ivi/blog/237349/
Все советы про CDN и DNS, которые вам тут дали Lindon_cano и Дмитрий 
 - большая глупость.
DNS не работает - потому что он тупо кэшируется. 
CDN - поможет только немного,  только с картинками. А для сайта магазина основная нагрузка - это движок, а вовсе не картинки.
Идея с проксированием вообще крайняя тупость в совете - тройная задержка получается.
Сделать несколько реплик сайта и позволять пользователям выбирать самим сайт. По geoIP подсказывая.

Худший ответ: Имхо в этом случае самое разумное делать домены первого\второго уровня (или локали ниже  /eu, /ch, /ru и так далее) и на каждом таком хостниге делать реплику сайта, что-то делать общими ресурсами (картинки, стили, кодовую базу, таблицы с пользователями) и реплицировать их rsync или чем угодно, а что-то разделить грамотно (базы данных товаров, складские остатки, картинки, описания товаров возможно) и не реплицировать понапрасну. 
Про геоДНС соглашусь с wukibuh, думаю это не сильно поможет, хотя в данном случае у вас отличаются ещё и страны, думаю это можно использовать как часть мер по перенаправлению пользователя на его "родной" магазин. CDN тоже можно заюзать, для раздачи статики, думаю у вас ооочень много картинок, она в этом случае поможет (или если есть видео о товарах, тоже через CDN раздать самое оно). 
Можно попробовать замутить геораспределнную БД, на это сильно зависит от движка БД, если у вас mysql то не особо вы там поиграете в A-A реплику. Если у вас noSQL то там это изи делается.
Вопрос: Как лучше делать админку для курьеров (полимер, сайт под смартфон, приложение или телеграмм)?

Лучший ответ: Нельзя сканировать ш-к товара;
Можно
https://stackoverflow.com/a/29262933
https://github.com/serratus/quaggaJS-Медленная работа (прогрузка страниц и т.д. по сравнению с приложениями);
https://www.html5rocks.com/ru/tutorials/appcache/b...
или https://habrahabr.ru/post/151815/

Худший ответ: Делали приложение для курьеров под андроид нативно. Под ios  не делали потому что у какого курьера будет ios ? 
даже если закупить всем андроид устройства все равно дешевле выйдет чем писать/поддерживать еще одну ось
Вопрос: Распознавание изображений в PHP — как сделать наложение декораций на элементы лица?

Лучший ответ: Всё просто. Находите лицо или что вам там нужно используя готовую предобученую модель. Далее накладываете в нужном месте своё изображение с помощью imagemagick.
Для наложения нужного эффекта на лицо лучше находить не просто координаты квадрата лица, а всех его точек.
Нахождение лиц и т.д. на php: https://habr.com/ru/post/358902/
imagecopy: php.net/manual/ru/function.imagecopy.php

Худший ответ: GB скорее всего, но я неуверен.
Вопрос: Что значит последовательный участок памяти?

Лучший ответ: Один последовательный участок памяти — это значит «последовательные адреса памяти». Таковыми будут массив простой и динамический, строка традиционного устройства, и все структуры памяти, что на них основаны. В том числе простейший стек и кольцевая очередь.
Для чего это нужно?
1. Это ближе к железу: проще код, лучше работает кэш, а значит, быстрее.
2. Некоторые функции, особенно нешаблонные, для своей работы требуют именно последовательных ячеек памяти.Но если я реализую стек через список, разве это не будет противоречить сказанному?
Совершенно верно, будет. Отсюда и знаменитая ошибка «переполнение стека» — непонятно, как наладить стек вызовов бесконечной ёмкости и относительно простого устройства. Потому, если нужна очень глубокая рекурсия (например, при обходе сетей), стек вызовов приходится эмулировать.

Худший ответ: наткнулся на вот такое вот утверждение
Толкование подобных утверждений могут сильно различаться в зависимости от используемого языка программирования.
Если же это вы наткнулись в общих рассуждениях в книге "программирование для домохозяек", то не принимайте близко к сердцу - автор сам не понимает о чём пишет.
Вопрос: Четыре DNS-адреса у домена. Реально?

Лучший ответ: Следует научиться формулировать свои мысли, освоить терминологию, чтобы пользоваться ею грамотно.
И почитать про балансировщики, например про round-robin, который позволяет несколько IP адресов на одно доменное имя.

Худший ответ: Мастер мастер репликация должна при этом поддерживаться вашим приложением и вообще сама по себе не самое простое явление, если вы не гуру мускула и распределенных систем это будет для вас за гранью
Вопрос: Как определить, что файл через торрент полностью загружен?

Лучший ответ: перехешировать. не?)

Худший ответ: Вы столкнулись с разреженными (sparsed) файлами. Вот как определить их реальный размер
https://msdn.microsoft.com/ru-ru/library/windows/d...
Вопрос: Как получить год из даты (проблема с getFullYear)?

Лучший ответ: Скорее всего, у вас проблема с жизненным циклом. Возможно, пропсы динамически обновляются после маунта компонента или ещё что-то подобное происходит. Проблема не в том, что год получить не удаётся, а в том, что вместо dateRange вам приходит пустой объект (или объект, у которого нет свойства start или оно есть, но равно undefined).
Разберитесь с жизненным циклом своего компонента и добавьте соответствующие проверки на валидность его пропсов.

Худший ответ: Выдает ошибку cannot read property 'getfullyear' of undefined.
Потому что это функция... console.log( this.props.dateRange.start.getFullYear() );
Вопрос: Как мы вы или они никогда не разберутся в жизни страусцовых улиток и французских булок?

Лучший ответ: ищите задачи на стыке программирования и строительства, например написание программ для моделирования конструкций в 3Д проектировании.

Худший ответ: Нужно найти кормящую работу. Изучай программирование параллельно. 
Строительная отрасль мало чем способствует развитию программистов.
Вопрос: Можно ли задавать имена переменных в шаблоне Django на кириллице?

Лучший ответ: Не надо делать 1с на моей джанго

Худший ответ: Ненормально.
Вопрос: Предоставлять ли клиенту фининсовый отчет по seo?

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

Худший ответ: Предоставлять ли клиенту фининсовый отчет по seo? Сходить ли мне в магазин? Кушать хочется, надо чего-нибудь купить, но идти нет желания.
Подскажите.
Вопрос: Может ли exe-шник редактировать сам себя?

Лучший ответ: Может ли exe-шник редактировать сам себя
Может. Но не должен. Потому что не нужно.

Худший ответ: > При запуске если байты нули
И защите такой грош цена, потому что отламывается правкой одной инструкции.
Вопрос: В чем ошибка написания скрипта?

Лучший ответ: Добавьте команду "подождать".....
...
if [ -f $LOCK ]; 
  $OBNAM backup;
elif [ ! -f $LOCK ]; then
  echo 'Lockfile not found!' >> /var/log/obnam.log;
fi

wait
umount $BAK_SHARE2_DST
umount $BAK_SHARE1_DST
mount -o remount,ro $BAK_STOR
Ну или еще вариант, посмотреть что именно внутри /usr/bin/obnam - скорее всего это скрипт, в котором происходит вызов чего-то там в фоне.

Худший ответ: Посмотрите здесь - https://stackoverflow.com/questions/356100/how-to-... . Запустить цыкл проверки - запущен ли процесс и после завершения продолжить выполнение скрипта .
Вопрос: Как возвратить картинку (тупой вопрос)?

Лучший ответ: Не изобретать велосипед, а использовать express.static()
А не работает скорее всего из-за неправильного (или вообще отсутствующего) заголовка Content-Type

Худший ответ: Вам понадобится этот модуль, он сильно облегчит вам жизнь.