• nodejs--开发自己的项目——5——个人中心模块——获取用户信息——设置的url:/my/userinfo/get请求


    url:/my/userinfo:注意/my是有权限的接口——所以需要在请求头中添加 Authorization : Bearer空格,身份认证字段

    服务器需要返回的是将服务器的信息提取出来,显示给客户端

    初始化 路由 模块

     

    路由模块 userinfo.js

    1. //导入express模块
    2. const express=require('express')
    3. //创建路由对象
    4. const Router=express.Router()
    5. //挂载具体路由1
    6. //监听客户端获取用户基本信息
    7. Router.get('/userinfo',(req,res)=>{
    8. res.send('ok')
    9. })
    10. //向外导出路由
    11. module.exports=Router//之前={对象 对象里面是属性 可以做一个省略}

    服务器模块 app.js

    1. //导入并使用获取用户注册信息的路由模块
    2. const userInfoRouter=require('./router/userinfo.js')
    3. app.use('/my',userInfoRouter)//加上统一的前缀——将其注册成为全局可以用的路由模块

     测试:发现登录失败(原因是因为我们访问的是有权限的模块,需要身份认证,也就是使用Token,通过请求头将信息发送回给服务器,进行身份认证,获取信息)

     使用前面登录模块的生成的token,在请求头中进行访问需要权限的my接口

    初始化 路由处理函数 模块

    路由模块:

    1. //导入express模块
    2. const express=require('express')
    3. //创建路由对象
    4. const Router=express.Router()
    5. //导入处理函数的模块
    6. const userInfo_hander=require('../router_handler/userinfo')
    7. //挂载具体路由1
    8. //监听客户端获取用户基本信息
    9. Router.get('/userinfo',userInfo_hander.getUserInfo)
    10. //向外导出路由
    11. module.exports=Router//之前={对象 对象里面是属性 可以做一个省略}

    导入处理函数的方式:

    1. exports.getUserInfo=(req,res)=>{
    2. res.send('ok')
    3. }

    测试: 

    获取用户的基本信息——主要是数据库中获得用户信息,SQL语句-路由处理函数模块

             防止信号泄露,将需要查询的字段写出来——指定id,值从token吧=把用户信息解析出来,只要token完成,会挂载在req.use上,客户端使用req.use。使用express-jwt这个中间件配置成功后,即可在那些有权限的接口中,使用req.user对象,来访问JWT字符串中解析出来的用户信息——正常情况下,req里面是没有属性的,当配置解析token的中间件完成后,会自动将解析出来的用户信息挂载到req.user上

    先导入数据库——查看是否导入成功——检测数据库导入是否成功

    1. // 导入数据库操作模块
    2. const db=require('../db/index')
    3. exports.getUserInfo=(req,res)=>{
    4. //测试数据库是否导入成功
    5. db.query('select 1',(err,results)=>{
    6. if(err) return console.log(err.message)
    7. console.log(results)//此结果可以正常打印输出就表示数据库连接正常
    8. })
    9. res.send('ok')
    10. }

     


    1. // 导入数据库操作模块
    2. const db=require('../db/index')
    3. exports.getUserInfo=(req,res)=>{
    4. //测试数据库是否导入成功
    5. // db.query('select 1',(err,results)=>{
    6. // if(err) return console.log(err.message)
    7. // console.log(results)//此结果可以正常打印输出就表示数据库连接正常
    8. //})
    9. //定义查询用户的SQL语句
    10. const sqlStr='select id,username,nickname,email,user_pic from ev_users where id= ?'
    11. db.query(sqlStr,req.auth.id,(err,results)=>{
    12. //执行SQL语句失败
    13. if(err) return res.cc(err)
    14. //执行SQL语句成功,但是执行的结果可能为空
    15. if(results.length!==1) return res.cc('获取用户信息失败')
    16. res.send({
    17. status:0,
    18. message:'用户信息成功',
    19. date:results[0],//查询的结果是数组
    20. })
    21. })
    22. }

     

  • 相关阅读:
    WPF 依赖属性原理、 附加属性
    【无标题】初识TCP,实验加抓包带你理解为什么需要三次握手、四次挥手
    deploy insightface for face detection
    Sparse Merkle Tree
    Java多线程篇(12)——ForkJoinPool
    Redis-集群
    运维团队如何加强安全设备监控与日志管理
    【测试】最火的测试开发学习路线内容再次大更新,助力通关大厂测开
    hadoop2-hive
    PyTorch交叉熵理解
  • 原文地址:https://blog.csdn.net/weixin_47295886/article/details/126919916