Search
Write a publication
Pull to refresh
28
0
Евгений @BenderRodriguez

Mobile engineer

Send message
WebStorm — отличная IDE, и подобное предупреждение мне значительно не мешает :) Повторюсь:
Подобный warning я бы потерпел ради чистоты кода.
Это какая-то неправильная IDE :)
Она выводит warning или error? Подобный warning я бы потерпел ради чистоты кода.
Это формат функции 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
app.use(function(req, res, next){
    res.status(404);
    log.debug('Not found URL: %s',req.url);
    res.send({ error: 'Not found' });
    return;
});


При возникновении ошибки Express сразу передает ее в специальное middleware с 4 аргументами — добавляется error.
В статье выделена обработка ошибок. Если вкратце, то все необработанные ошибки Express направит в наш обработчик:
app.use(function(err, req, res, next){
    res.status(err.status || 500);
    log.error('Internal error(%d): %s',res.statusCode,err.message);
    res.send({ error: err.message });
    return;
});


А вот и пример вызова ошибки. Так же можно выполнить throw new Error('my silly error');, все прекрасно обработается, сервер не упадет.
app.get('/ErrorExample', function(req, res, next){
    next(new Error('Random error!'));
});
Интересно выглядит, изучу на досуге.
По поводу трудоемкости Express — согласен. Но во время поиска альтернатив я наткнулся на несколько упоминаний, что самый популярный фреймворк для быстрого развертывания RESTful API на Node — Restify — нестабилен под нагрузкой (один из примеров). Так что я решил использовать Express, о котором только положительные отзывы, чтоб не столкнуться с подобными неведомыми проблемами.
В JavaScript деление на ноль не является ошибкой. Результатом будет Infinity.
все совершенно верно, поправил комментарий.
gradmax тут абсолютно прав, с JS на стороне клиента я немного знаком, c Python никогда не сталкивался. Node.js меня заинтересовала, как относительно новая, интересная и нестандартная технология для подобных задач. Так что критиковать Python&Django не могу, можете лишь рассмотреть мой проект и решить, в чем его плюсы и минусы относительно вашего подхода.

Information

Rating
Does not participate
Location
Казань, Татарстан, Россия
Date of birth
Registered
Activity