gpt4 book ai didi

node.js - 快速中间件

转载 作者:太空宇宙 更新时间:2023-11-03 23:00:25 24 4
gpt4 key购买 nike

我是 Express 框架的初学者,在代码流程方面遇到一些困难。我在 app.js 中有以下代码

app.use('/', index);
app.use('/login', login);
app.use(require('./routes/authenticate_user'))
app.use('/user', userDetails);

问题是,如果用户输入无效的路由(假设“/错误”),那么我的中间件会发送该响应,而不是应用程序抛出 404 未找到。我缺少什么吗?(​​看起来很明显)。感谢您的帮助。

最佳答案

运行身份验证中间件的方式和位置有多种选择。

1) 您可以在定义任何未经身份验证的路由后立即运行它。除了允许用户无需身份验证即可访问的少数路由之外,这将为任何路由提供非身份验证错误,无论它是否是真实路由。

2)您可以手动将中间件添加到每个定义的应该具有身份验证的路由,例如:

app.get('/something', yourAuthMiddleware, yourRouteHandler);

这将仅对实际定义的路由运行身份验证检查。这允许您为未定义的路由提供 404 而不是身份验证错误。

第一个选项的优点(本质上就是您现在拥有的方式)是未经身份验证的用户甚至无法找出哪些路由已定义或未定义。如果他们没有经过身份验证,则除了允许他们进入的几条路线外,他们根本无法进入。在我看来,这是正确的设计。

第二个选项将允许您为未定义的路由提供 404,但它需要手动将身份验证添加到每个路由或您定义的需要身份验证的每个路由器。这允许未经身份验证的用户找出哪些路由已定义,哪些路由未定义。

关于node.js - 快速中间件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49714453/

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