【node.js后台api项目】(四)获取用户信息接口
1. 初始化路由模块
在router文件夹新建user.js
// ./router/user.js
const express = require('express')
// 创建路由对象
const router = express.Router()
router.get('/userinfo', (req, res) => {
res.send('ok')
})
module.exports = router
2、使用路由
// ./app.js
// 导入用户中心路由模块
const userinfoRouter = require('./router/usreinfo')
// 使用用户中心路由,挂在统一路由前缀 /my
app.use('/my', userinfoRouter)
3、测试一下
注意除了 /api开头的路由不需要身份认证,其他都需要携带 Authorization头部
打开postman,如下图所示返回ok,测试成功
4、初始化路由处理函数模块
创建 ./router_handler/userinfo.js
路由处理函数模块
const getUserInfo = (req, res) => {
res.send('ok')
}
module.exports = {
getUserInfo
}
修改 ./router/userinfo.js
中的代码如下
const express = require('express')
// 创建路由对象
const router = express.Router()
// 导入路由处理函数模块
const userinfo_handler = require('../router_handler/userinfo')
// 使用处理函数
router.get('/userinfo', userinfo_handler.getUserInfo)
module.exports = router
5、获取用户基本信息
在 /router_handler/userinfo.js 头部导入数据库操作模块:
// 导入数据库操作模块
const db = require('../db/index')
定义 SQL 语句:
// 根据用户的 id,查询用户的基本信息
// 注意:为了防止用户的密码泄露,需要排除 password 字段
const sql = `select id, username, nickname, email, user_pic from ev_users where id=?`
调用 db.query() 执行 SQL 语句:
// 注意:req 对象上的 user 属性,是 Token 解析成功,express-jwt 中间件帮我们挂载上去的
db.query(sql, req.user.id, (err, results) => {
// 1. 执行 SQL 语句失败
if (err) return res.cc(err)
// 2. 执行 SQL 语句成功,但是查询到的数据条数不等于 1
if (results.length !== 1) return res.cc('获取用户信息失败!')
// 3. 将用户信息响应给客户端
res.send({
status: 0,
message: '获取用户基本信息成功!',
data: results[0],
})
})