Как стать автором
Обновить

Комментарии 15

А разве непроще создать конфик в nginx который будет раздавать статику. Для этого достаточно конфига
server {
listen 127.0.0.4:80 default_server;
root /path/to/folder;
index index.html;
}

Согласен, но мне удобнее сделать все на NodeJS, так как его я знаю. Nginx нужно установить, часто это не проходит с первого раза. Также важно, что в этой истории я могу пользоваться отладчиком это нужно крайне редко, но иногда может здорово выручить. Еще стоит отметить, что этот сервер нужен только для разработки. и да на проде это делает nginx.
>createReadStream(filePath) .on('error', error => res.writeHead(404).end()) pipe(res);
Вообще-то файл может не прочитаться по сотне причин. И скорее всего, для них нужно вернуть не 404, а что-то типа 5xx. Есть подозрения, что в своем велосипеде вы можете накосячить так еще в сотне мест. Ну разве что для отладки…
>createReadStream(filePath) .on('error', error => res.writeHead(404).end()) pipe(res);
Вообще-то файл может не прочитаться по сотне причин. И скорее всего, для них нужно вернуть не 404, а что-то типа 5xx. Есть подозрения, что в своем велосипеде вы можете накосячить так еще в сотне мест. Ну разве что для отладки…

Да вы правы, обработчик ошибок >error => res.writeHead(404).end(); сделан просто чтобы сервер не падал.
Часто для разработки MPA/SPA/PWA приложений требуется простой веб-сервер

Этот велосипед не для production, это простой инструмент. В целом этот велосипед полезен на бездорожье. Когда придет время дебажить SSR. Так как в процессе разработки нового велосипеда :-) debugger; для меня инструмент номер 1
Тема вообще не раскрыта.

А на проде тоже надо порт 3000 выставлять и через перенаправление портов идти на 80-ый порт? Или сразу можно 80-ый порт ставить?

А зачем это вообще нужно, если можно просто накатить nginx с простым конфигом, как написали выше? Вот если бы, как в статье писалось, рассматривался бы момент, что к нам пришёл какой-то робот или браузер без JS, то вот только им отдавать статику нодой — это было бы куда полезней.
разве не проще открыть документацию что бы узнать какие есть свойства у объектов, чем пользоваться дебагером?
Чаще всего да, но также можно попасть в ситуации когда документация либо устарела, либо в ней тупо не все раскрыто.
НЛО прилетело и опубликовало эту надпись здесь
В отношении официальной документации NodeJS это крайне редко справедливо (не встречал особо таких ситуаций), и в любом случае, дебагер как *первый* способ смотреть что же приходит в объекте, ну так себе подход (ИМХО)
а не проще ли npm install http-server
Цель была сделать это без использования зависимостей. Разобраться с потоками, потоки это инструмент который дает большие возможности а также расширить кругозор.
Использование библиотеки быстро решает проблему, но опыта не прибавляет…
НЛО прилетело и опубликовало эту надпись здесь
Нет, не рекомендую. Делюсь с теми кому будет интересно :-)
offtop/2
на одном большом митинге в ответ на вопрос: «Что ты делал?», я сказал, что поднимал веб-сервер для хостинга PWA приложения. Мы все долго смеялись и да, кстати, PWA это не клей. Как SPA — это не косметический салон. Все это виды веб-приложений. А SSR это не страна :-)
Ну тогда до кучи и митинг это не тот, что вначале согласовывают и потом разгоняют )).

Это прекрасно. Чрезвычайно талантливо, это ж нужно было умудриться, client side rendering обозвать spa и pwa. И если первое хоть какое то отношение имеет к заявленной теме, то pwa которое является распиаренным гуглом термин, обозначающий привязку файла манифеста к любой html страничке отображающей hello world, требовало наверняка очень развитой фантазии.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории