const donations = [5, 20, 100, 80, 75];
let total = donations.reduce((total,donation) => {
return total + donation;
});
const donations = [5, 20, 100, 80, 75];
let total = donations.reduce((total,donation) => {
return total + donation;
}, 450);
Я бы вкинул вам свои 5 копеек :-), функция reduce в вашем случае дважды делает операцию сложения можно было на втором примере сказать что функция сложения может быть сохранена в переменную с идентификатором add и потом многократно использована в разных инструкциях где нужно сложение.
const donations = [5, 20, 100, 80, 75];
const add = (a,b) => a+ b;
let total = donations.reduce(add, 450);
Не увидел и еще одного из важнейших профитов от map, reduce, filter, sort — chain
// массив возрастов
// цель взять совершеннолетних и получить общий возраст :-)
const isAdult = age => age > 18;
const add = (a, b) => a + b;
[15, 20, 60, 80, 95, 50, 45, 35].filter(isAdult).reduce(add, 0); // => 385
Та же я не услышал что все эти функции никак не изменяют изначальный массив и возвращают новый экземпляр массива.
>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
Цель была сделать это без использования зависимостей. Разобраться с потоками, потоки это инструмент который дает большие возможности а также расширить кругозор.
Использование библиотеки быстро решает проблему, но опыта не прибавляет…
Согласен, но мне удобнее сделать все на NodeJS, так как его я знаю. Nginx нужно установить, часто это не проходит с первого раза. Также важно, что в этой истории я могу пользоваться отладчиком это нужно крайне редко, но иногда может здорово выручить. Еще стоит отметить, что этот сервер нужен только для разработки. и да на проде это делает nginx.
Я бы вкинул вам свои 5 копеек :-), функция reduce в вашем случае дважды делает операцию сложения можно было на втором примере сказать что функция сложения может быть сохранена в переменную с идентификатором add и потом многократно использована в разных инструкциях где нужно сложение.
Не увидел и еще одного из важнейших профитов от map, reduce, filter, sort — chain
Та же я не услышал что все эти функции никак не изменяют изначальный массив и возвращают новый экземпляр массива.
Да вы правы, обработчик ошибок >error => res.writeHead(404).end(); сделан просто чтобы сервер не падал.
Этот велосипед не для production, это простой инструмент. В целом этот велосипед полезен на бездорожье. Когда придет время дебажить SSR. Так как в процессе разработки нового велосипеда :-) debugger; для меня инструмент номер 1
Использование библиотеки быстро решает проблему, но опыта не прибавляет…