url:/my/userinfo:注意/my是有权限的接口——所以需要在请求头中添加 Authorization : Bearer空格
服务器需要返回的是将服务器的信息提取出来,显示给客户端

路由模块 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')
- }
测试:

防止信号泄露,将需要查询的字段写出来——指定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],//查询的结果是数组
- })
- })
-
- }
