用户登录

下面去定义更新用户接口,先定义这个接口需要的处理器,打开 user.controller,在文件顶部找个地方,把 lodash 导入进来,等会儿会用到它里面提供的一个方法。这个导入 UserModel 的代码用不着了,可以把它删除掉。

然后找个地方,去定义 更新用户 接口需要的处理器,处理器的名字是 update, 在这个处理器里面先准备点数据, 先把当前用户的 id 解构出来,来自 request.user。

再添加一个 userData,它的值就是要更新的用户数据,用 lodash 里的 pick 方法,从 request.body.udpate 这个对象里面,挑选两个属性,一个是 name 还有一个是 password 。 下面去更新一下用户数据,用一组 try,catch 。

在 try 区块里,声明一个 data,等于 await ,执行 user.service 里的 updateUser 这个方法更新用户的数据,用户的 id 是 id ,要更新的用户数据是 userData。

在处理器里面要做出一个响应,用 response 上的 send ,把 data 发给客户端。 然后在 catch 区块里,处理一下发生的错误,执行 next 带着 error 。

打开 user.router,在文件顶部,从 user.middleware 里面,把之前我们创建的 validateUpdateUserData 这个中间件导入进来。

然后再把 auth.middleware 里的 authGuard 中间件导入进来,它来自上一级目录,auth 下面的 auth.middleware 。

再找个地方去定义 更新用户 接口,用一下 router 上的 patch 方法定义这个接口,这样这个接口支持用 HTTP 的 PATCH 方法使用它。接口地址可以是 /users ,接口上安排使用 authGuard 检查用户的登录状态,再安排一个 validateUpdateUserData 检查更新数据。接口处理器设置成 user.controller 里的 update 。

定义更新用户接口《 Node.js 服务端应用开发:资源接口 》

统计

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

社会化网络

关于

微信订阅号

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