Этот вопрос расширяет круг вопросов Что такое Node.js 'Connect, Express и "middleware" ?
Я собираюсь изучить Javascript → Node.js → Connect → Express → ..., чтобы узнать об использовании современного стека веб-разработки. У меня есть опыт работы в низкоуровневых сетях, поэтому легко и удобно работать с модулями Node.js 'net
и http
. Общая схема использования сервера для маршрутизации запросов к различным обработчикам казалась естественной и интуитивной.
Переходя к Connect, я боюсь, я не понимаю парадигму и общий поток данных этого "промежуточного ПО". Например, если я создаю некоторое промежуточное программное обеспечение для использования с Connect ala;
// example.js
module.exports = function (opts) {
// ...
return function(req, res, next) {
// ...
next();
};
};
и "использовать" его в Connect через
var example = require('./example');
// ...
var server = connect.createServer();
// ...
server.use(example(some_paramater));
Я не знаю, когда будет вызвано мое промежуточное программное обеспечение. Кроме того, если я use()
'другой миддлвер, могу ли я быть гарантирован в том порядке, в котором вызывается промежуточное ПО? Furthuremore, я полагаю, что функция next()
используется для вызова следующего (опять же, как установить порядок?) Промежуточного программного обеспечения; однако никакие параметры (req, res, next) не передаются. Эти параметры передаются неявно?
Я предполагаю, что набор модулей промежуточного программного обеспечения используется вместе, начиная с обратного вызова http
→ , следовательно, добавлена функция функциональности, добавленная в середине обратного вызова первоначального запроса, и сервер, заканчивающий ответ.
Я пытаюсь понять парадигму промежуточного ПО и поток информации/выполнение.
Любая помощь приветствуется. Спасибо за чтение