Express应用程序的app.get文档

21

我正在寻找关于 express.js 中 app.get 函数的一些文档。

app.get(
    '/path', 
    middleware(),
    function(req, res) {
        res.redirect('/');
    }
);

上面的例子有三个参数。普通文档只显示两个。我想知道这个中间参数的作用以及如何使用它。


3
你可以堆叠中间件函数:app.get('/account', fn1, fn2, fn3, function(err, req, res) { }); - chovy
1
@chovy 谢谢你的简单回答。祝你2015年新年快乐! - Adam Mendoza
1个回答

26

有关此内容的文档是 app.METHOD 文档 的一部分,其中 get 是支持的 HTTP 方法之一。

第二个可选参数称为中间件(您可以传递一组中间件函数)。这是在第三个参数回调函数(实际路由处理程序)之前调用的函数,中间件函数的责任是允许您的代码遵循 DRY(不要重复自己)原则。

中间件函数的示例包括权限检查、访问验证、会话验证(如果用户未登录,则将其带到登录页面)等。

由于多个路由可能需要相同的行为,因此使用中间件使您无需多次编写相同的代码。


我想编写一些中间件函数,但是我真的找不到关于它们如何工作以及它们需要哪些参数的文档。我找到了一个示例代码,其中有一个函数将req、res、next作为参数,但我不确定如何使用它。 - ThomasReggi
1
这里的中间件函数总是使用这三个参数:request 对象、response 对象和 next 回调函数,用于在中间件完成时调用。如果出现错误,请将 Error 对象传递给 next,或者不传递任何参数以将控制权传递给下一个回调函数。 - JohnnyHK
你知道另一种方法的中间件示例吗?Node/Express使用它来在路径下委派参数。例如,从/login?name=thomas到路由/login?age=23。我真的需要一个这样的例子。我知道我可以根据它们是否为“未定义”使用条件if req.query.agereq.query.name,但这似乎并不是很复杂。中间件是解决方案吗? - ThomasReggi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接