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],//查询的结果是数组
})
})
}