用户登录

服务端在确定要创建新的用户之前,需要验证一下用户提供的数据,比如要保证客户端提供的数据里面包含 name 与 password,可以检查它们的长度,或者检查它们是否匹配某种特定的模式等等。这个检查用户数据的工作,可以交给一个中间件去做。在中间件里发生的异常,会交到应用默认的异常处理器来处理。

打开 user.middleware,在这里定义一个验证用户数据用的中间件,导出一个函数,名字叫 validateUserData,把这个函数标记成一个异步函数,然后用箭头函数的写法定义它。 函数里面有几个参数,request,类型是 Request,response,类型是 Response,还有 next ,类型是 NextFunction。

在函数的主体里面,先在控制台上输出一行文字,验证用户数据。这样如果这个中间件被使用了,你可以在控制台上看到这行文字。

下面要准备一下要验证的数据,从请求主体里面,把 name 还有 password 解构出来。 来自 request.body。

然后验证一下用户提供的数据,判断一下,如果没有 name ,可以 return next ,新建一个 Error 给这个函数。这样就会到默认的异常处理器那里处理。新建 Error 的时候提供一个错误信息。NAME_IS_REQUIRED

再判断一下,如果没有 password,同样 return next() 新建一个 Error,给它提供一个错误信息。PASSWORD_IS_REQUIRED

中间件的最后要执行 next() 进行下一步处理。 这个中件间可以放在 创建用户 接口上用一下,打开 user.router,先在文件顶部导入 validateUserData 来自 ./user.middleware

然后修改一下 创建用户 接口,在这里安排使用一个 validateUserData 中间件。

打开 HTTP 客户端,配置一下 创建用户 请求,可以去掉请求数据里的 password ,发送一下这个请求,提示服务暂时出了点问题。这是异常处理器做出的默认的响应。下面我们可以改造一下这个异常的响应。

验证用户数据《 Node.js 服务端应用开发:注册用户 》

统计

14696
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点