【发布时间】:2013-07-18 23:42:59
【问题描述】:
这个问题扩展了What is Node.js' Connect, Express and "middleware"?
我正在学习 Javascript -> Node.js -> Connect -> Express -> ... 以了解如何使用现代 Web 开发堆栈。我有低层网络的背景,所以使用 Node.js 的 net 和 http 模块很容易。使用服务器将请求路由到不同处理程序的一般模式看起来自然而直观。
转到Connect,恐怕我不了解这个“中间件”的范式和一般数据流。例如,如果我创建了一些用于 Connect ala 的中间件;
// example.js
module.exports = function (opts) {
// ...
return function(req, res, next) {
// ...
next();
};
};
并在 Connect via 中“使用”它
var example = require('./example');
// ...
var server = connect.createServer();
// ...
server.use(example(some_paramater));
我不知道我的中间件何时被调用。另外,如果我是use()'ing 其他中间件,是否可以保证调用中间件的顺序?此外,我假设函数 next() 用于调用 next (再次,我如何建立排序?)中间件;但是,没有传递任何参数(req、res、next)。这些参数是否以某种方式隐式传递?
我猜测使用的中间件模块的集合是串在一起的,从 http 回调开始 -> 因此在中间中添加了一堆功能初始请求回调和服务器结束响应。
我正在尝试了解中间件范式以及信息/执行流程。
非常感谢任何帮助。感谢阅读
【问题讨论】:
标签: javascript node.js connect middleware