我是 javascript 新手,直接进入 node.js。我已经阅读了很多理论,并且从实用方面开始(我正在为移动应用程序编写 API),但是我有一个基本问题,这导致我使用中间件。我已经成功实现了一个中间件功能,但是我想知道我给出的中间件想法的使用是否可以,并且也解决了最初将我带到中间件的问题。我的问题有两个,如下:
1)据我所知,使用中间件的想法是在实际处理请求之前重复一个过程。我用它来验证令牌,如下:我的只有一个url没有收到令牌参数,所以
应用程序.js
app.get('/settings', auth.validateToken, auth.settings);
auth.js
function validateToken(req, res, next){ //code };
在 validateToken 中,我的代码检查令牌,如果一切正常,则调用 next(),或者将 res 修改为 json 以返回特定的错误代码。
我对此的问题是:a)这是对中间件的正确使用吗?b) 是否有 [正确] 将值传递给下一个函数的方法?不是仅在一切正常的情况下才调用 next ,是否有一种 [正确的] 方法可以调用 next 任何一种方式,并从 next 函数(无论它是什么)内部知道中间件是否成功?如果有,这是否是对中间件的正确使用?这一点让我想到了我原来的问题,以及这个问题的第二部分,即封装函数:
这部分已修复,请参阅我的第二条评论。
2) 我发现中间件试图简单地封装 validateToken,并且能够从 get 处理程序指向的函数内部调用它,例如 auth.settings。我习惯于常见的顺序编程,而不是使用 javascript,考虑到 node.js 的基于事件的性质,我一生都无法理解如何做到这一点。
我现在要做的是编写一个简单地验证用户和密码的函数。我把它完美地写在一个特定的处理程序中,但正要复制粘贴到另一个处理程序,所以我停了下来。我想从头开始以正确的方式做事,并了解 node.js。我遇到的一个具体问题是,当用户和密码不匹配时我必须返回的错误代码因父函数而异,所以我需要这个函数才能告诉回调函数“嘿,密码和用户不匹配”,所以我可以从父函数中回复正确的消息。
我想我真正想要的是编写一个可以从另一个内部调用的异步函数。
我希望我已经很清楚了,我一直在尝试自己解决这个问题,但是我无法完全理解我的实际问题是什么,我猜这是由于我最近对 node.js 的介绍。 js和js。提前致谢!詹妮弗。