Это формат функции middleware в Express.js. Middleware — функция-обработчик в Express, которая выполняет операцию и передает request следующему middleware по цепочке. Например, 1 звено — контроль доступа, 2 звено — отдает нужные данные.
Обычное middleware принимает function(req, res, next), где req — запрос, res — ответ, next — вызов следующего middleware. Например, 1 звено проверяет токен и если он валидный — вызывает next, 2 звено отдает данные, больше ничего не требуется делать, ответ отправлен, вызывать next не требуется.
Простейшее middleware c next()
app.use(function(req, res, next){
// do smth with req & res
next();
});
Пример middleware: обработчик ошибки 404 — вызывается, когда нет другого подходящего middleware
Интересно выглядит, изучу на досуге.
По поводу трудоемкости Express — согласен. Но во время поиска альтернатив я наткнулся на несколько упоминаний, что самый популярный фреймворк для быстрого развертывания RESTful API на Node — Restify — нестабилен под нагрузкой (один из примеров). Так что я решил использовать Express, о котором только положительные отзывы, чтоб не столкнуться с подобными неведомыми проблемами.
gradmax тут абсолютно прав, с JS на стороне клиента я немного знаком, c Python никогда не сталкивался. Node.js меня заинтересовала, как относительно новая, интересная и нестандартная технология для подобных задач. Так что критиковать Python&Django не могу, можете лишь рассмотреть мой проект и решить, в чем его плюсы и минусы относительно вашего подхода.
Она выводит warning или error? Подобный warning я бы потерпел ради чистоты кода.
Обычное middleware принимает
function(req, res, next)
, где req — запрос, res — ответ, next — вызов следующего middleware. Например, 1 звено проверяет токен и если он валидный — вызывает next, 2 звено отдает данные, больше ничего не требуется делать, ответ отправлен, вызывать next не требуется.Простейшее middleware c next()
Пример middleware: обработчик ошибки 404 — вызывается, когда нет другого подходящего middleware
При возникновении ошибки Express сразу передает ее в специальное middleware с 4 аргументами — добавляется error.
А вот и пример вызова ошибки. Так же можно выполнить
throw new Error('my silly error');
, все прекрасно обработается, сервер не упадет.По поводу трудоемкости Express — согласен. Но во время поиска альтернатив я наткнулся на несколько упоминаний, что самый популярный фреймворк для быстрого развертывания RESTful API на Node — Restify — нестабилен под нагрузкой (один из примеров). Так что я решил использовать Express, о котором только положительные отзывы, чтоб не столкнуться с подобными неведомыми проблемами.