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

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

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

初始化 路由 模块

 

路由模块 userinfo.js

//导入express模块
const express=require('express')

//创建路由对象
const Router=express.Router()

//挂载具体路由1
//监听客户端获取用户基本信息
Router.get('/userinfo',(req,res)=>{
    res.send('ok')
})

//向外导出路由
module.exports=Router//之前={对象 对象里面是属性 可以做一个省略}

服务器模块 app.js


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

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

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

初始化 路由处理函数 模块

路由模块:

//导入express模块
const express=require('express')

//创建路由对象
const Router=express.Router()
//导入处理函数的模块
const userInfo_hander=require('../router_handler/userinfo')

//挂载具体路由1
//监听客户端获取用户基本信息
Router.get('/userinfo',userInfo_hander.getUserInfo)

//向外导出路由
module.exports=Router//之前={对象 对象里面是属性 可以做一个省略}

导入处理函数的方式:

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

测试: 

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

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

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

// 导入数据库操作模块
const db=require('../db/index')

exports.getUserInfo=(req,res)=>{
    //测试数据库是否导入成功
    db.query('select 1',(err,results)=>{

    if(err) return console.log(err.message)

    console.log(results)//此结果可以正常打印输出就表示数据库连接正常

})
    res.send('ok')
}

 


// 导入数据库操作模块
const db=require('../db/index')

exports.getUserInfo=(req,res)=>{
    //测试数据库是否导入成功
    // db.query('select 1',(err,results)=>{
    // if(err) return console.log(err.message)
    // console.log(results)//此结果可以正常打印输出就表示数据库连接正常
    //})
    //定义查询用户的SQL语句
    const sqlStr='select id,username,nickname,email,user_pic from ev_users where id= ?'
    db.query(sqlStr,req.auth.id,(err,results)=>{
        //执行SQL语句失败
       if(err) return  res.cc(err)
       //执行SQL语句成功,但是执行的结果可能为空
       if(results.length!==1) return  res.cc('获取用户信息失败')
       res.send({
        status:0,
        message:'用户信息成功',
        date:results[0],//查询的结果是数组
       })
    })
   
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值