【发布时间】:2018-09-17 18:15:18
【问题描述】:
我是 Express 框架的初学者,在代码流方面有些困难。我在 app.js 中有以下代码
app.use('/', index);
app.use('/login', login);
app.use(require('./routes/authenticate_user'))
app.use('/user', userDetails);
问题是,如果用户输入无效路由假设“/错误”,那么我的中间件会发送响应,而不是应用程序抛出 404 Not found。我有什么遗漏吗?(看起来很明显)。感谢您的帮助。
【问题讨论】:
-
是的,很抱歉一开始没有指定。该中间件用于确保用户是否在请求标头中传递了访问令牌。
-
好吧,你必须决定在这种情况下你想要发生什么。在我看来,发送一个他们没有得到适当授权的状态(即使它是
/wrong)是正确的设计。这也可以防止未经授权的用户了解有关您的 URL 的任何信息,以及哪些有效,哪些无效。 -
但问题依然存在。有什么方法可以预先检查路线吗?如果允许我的话。或者有其他方法可以解决这个问题。
-
还有什么问题?我没有建议你改变任何东西。我认为它的方式是正确的设计。如果您只想检查匹配的路由,则必须手动将中间件放在每条路由上。
app.use('/user', require('./routes/authenticate_user'), userDetails); -
好的。感谢您的快速回复,我想这是应该的方式
标签: node.js express routes middleware