gpt4 book ai didi

javascript - Meteor添加中间件方法的差异

转载 作者:行者123 更新时间:2023-11-28 20:16:22 25 4
gpt4 key购买 nike

我通常使用以下代码来管理服务器上的路由:

WebApp.connectHandlers.stack.splice(0, 0, {
route: '...',
handle: function(req, res, next) {...},
});

但是,我在某些地方看到了另一种模式:

WebApp.connectHandlers.use(function(req, res, next) {
...
});

除了语法和路由管理之外,它们之间还有什么区别?由于性能或其他原因,其中一个更好使用吗?

最佳答案

中间件的工作方式是使用某种列表然后处理响应。所以如果你有

WebApp.connectHandlers.use(function(req, res, next) {
...
});

如果您没有在此处以响应结束,它将调用 next() 并在堆栈中查找要运行的下一个连接处理程序,如果没有任何下一个,那么上。

这有一点顺序,因此您描述的第一个方法将某些内容添加到堆栈的开头(或 splice 中指定的索引),第二个方法将其添加到堆栈的末尾。

因此,在 Meteor 中,它取决于其他中间件,如果您想在其他处理程序之前访问 reqres 值,您可以使用第一个(例如某种 HTTP 登录检查/升级 websocket 请求),另一种使用 .use 在堆栈末尾进行其他操作(IP 地址/cookie 检查)

有一点需要注意,虽然我不是 100% 确定这个 Meteor 也可能使用中间件,所以你需要在 Meteor 之前到达堆栈,所以第一个语法可能会更好,特别是如果 Meteor 以请求结束的话所以最后添加的可能没有效果。

关于javascript - Meteor添加中间件方法的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19135828/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com