Jam*_*ght 4 javascript middleware connect next node.js
似乎如果我想转移到Nodejs中的"下一个"函数(可能还有Javascript)?我无法将参数传递给下一个函数.
这就是我的意思:
app.get('/webpage', SomeFunction, NextFunction);
function SomeFunction (req, res, next) {
    // Do things
    next();
}
function NextFunction (req, res) {
    // Do other things
}
现在,如果在SomeFunction我说它next(req, res);似乎不起作用.它永远不会到达方法.显然我不能直接传递参数......但我的问题是为什么?下一个函数如何知道要使用哪些参数?是因为它们被命名相同还是自动传递第一和第二参数?如果NextFunction使用blah, bleet而不是req, res它仍然有效?
Jer*_*man 15
这是Connect设计的一个有意的方面(node.js中间件负责此行为).next中间件接收的功能不是堆栈中的下一个中间件; 它是Connect生成的函数,它要求下一个中间件处理它(以及做一些额外的东西来处理特殊情况,比如没有"下一个中间件").
如果您的中间件应该返回响应,那么就这样做.如果它不应该,则暗示某些后来的中间件应该返回响应.如果需要将数据传递给进程的后续部分,则应将其附加到请求对象的适当部分req.
例如,捆绑的bodyParser中间件负责填充req.rawBody并req.body基于请求主体的内容.捆绑的basicAuth中间件req.remoteUser基于HTTP身份验证进行填充.
这是您应该尝试模拟的模式:一堆中间件,每个中间件都有一个基本的增量来处理请求.如果你想要建模的东西不适合这个范例,那么你应该只有一个函数来处理请求,你可以从中调用所有自己的应用程序逻辑.
| 归档时间: | 
 | 
| 查看次数: | 2686 次 | 
| 最近记录: |