我是靠谱客的博主 疯狂菠萝,最近开发中收集的这篇文章主要介绍Node.js+mongodb 学习笔记(三)swagger注释+用户管理Node.js+mongodb 学习笔记(三)swagger注释+用户管理,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
Node.js+mongodb 学习笔记(三)swagger注释+用户管理
- Node.js+mongodb 学习笔记(三)swagger注释+用户管理
- 用户注册
- 用户登录
- 修改密码
- swagger注释
Node.js+mongodb 学习笔记(三)swagger注释+用户管理
首先创建server文件夹,用于存放接口,目录结构如下:
用户注册
首先进入文件需要的模块
const jwt = require('jsonwebtoken');
var db = require('../utils/mongodb/db.js');
var md5=require('md5-node'); /*md5加密*/
const{
CODE_ERROE,
CODE_SUCCESS,
CODE_TOKEN_EXPIRED,
PRIVATE_KEY,
JWT_EXPIRED
} = require('../utils/constant');
然后编写登录方法,先获取输入的用户名和密码,然后判断用户名是否被注册过,没有被注册过可以进行添加数据库的操作。
//注册
function register(req,res){
var username = req.body.username;
var password = md5(req.body.password);
var obj = {
username:username,
password:password
}
//1.判断用户名是否已注册
db.find('user',{username:username},function(err,data){
if(data==''){
//2.没有注册进行注册
db.insert('user',obj,function(err,data){
if(data!=''){
let userData=data.ops;
res.json({
code:CODE_SUCCESS,
msg:'注册成功',
data: userData
})
}else{
var datas={
code:CODE_ERROE,
msg:'注册失败',
data: ''
}
res.json(datas);
}
})
}else{
//3.用户名重复
var datas={
code:CODE_ERROE,
msg:'用户名重复',
data: ''
}
res.json(datas);
}
})
}
用户登录
在登录的时候,成功会生成一个token和用户信息一起返回
//登录
function login(req,res){
var username = req.body.username;
var password = md5(req.body.password);
var obj = {
username:username,
password:password
}
db.find('user',obj,function(err,data){
if(data==''){
res.json({
code:CODE_ERROE,
msg:'登录失败',
data: data
})
}else{
//生成token
const token = jwt.sign(
{username},
PRIVATE_KEY,
{expiresIn:JWT_EXPIRED}
)
let userData={
user:data[0],
token:token
}
res.json({
code:CODE_SUCCESS,
msg:'登录成功',
data: userData
})
}
})
}
修改密码
修改密码要先验证旧密码是否正确,然后判断新密码不能为空
//修改密码
function restPwd(req,res){
var username = req.body.username;
var oldpwd = req.body.oldpwd;
var newpwd = md5(req.body.newpwd);
var obj1 = {
username:username,
password:oldpwd
}
db.find('user',obj1,function(err,data){
if(data==''){
res.json({
code:CODE_ERROE,
message:'用户名或密码错误',
data:data
});
}else{
if(newpwd==''){
res.json({
code:CODE_ERROE,
message:'新密码不能为空',
data:''
});
}else{
var obj2 = {
username:username,
password:newpwd
}
db.update('user',obj1,obj2,function(err,data){
if(data==''){
res.json({
code:CODE_ERROE,
message:'修改密码失败',
data:''
});
}else{
res.json({
code:CODE_SUCCESS,
message:'修改密码成功',
data:''
});
}
})
}
}
})
}
最后,要把这三个对外暴露,不然后面路由进行调用会找不到
module.exports = {
register,
login,
restPwd
}
swagger注释
swagger注解是写在路由的上面,上一篇在swagger配置的时候声明了去路由文件夹下收集注释,在如下文件内进行编辑:
首先是登录路由
var express = require('express');
var bodyParser = require('body-parser');
var router = express.Router();
var server = require('../server/userService')
router.use(bodyParser.urlencoded({ extended: false }));
router.use(bodyParser.json());
/**,
* @swagger
* /users/addUser: #路由地址
* post:
* tags:
* - 用户管理 #接口分类
* summary: 添加用户 #接口备注
* description: 添加用户 #接口描述
* consumes:
* - "application/json" #接口接收参数方式
* requestBody: #编写参数接收体
* required: true #是否必传
* content:
* application/json:
* schema: #参数备注
* type: object #参数类型
* properties:
* username:
* type: string #参数类型
* description: 用户名 #参数描述
* password:
* type: string #参数类型
* description: 密码 #参数描述
* example: #请求参数样例。
* username: "string"
* password: "string"
* responses: #编写返回体
* 200: #返回code码
* description: 注册成功 #返回code码描述
* content:
* application/json:
* schema:
* type: object
* properties:
* code: #返回的code码
* type: string
* description: 返回code码
* msg: #返回体信息。***注意写的位置一定要和res_code对齐。
* type: string #返回体信息类型
* description: 返回信息
* data:
* type: object
* description: 返回数据
* -1:
* description: 注册失败
* */
router.post('/addUser', server.register);
这几个方法都是post,注释的大部分内容都是一样的,修改地址,请求参数等信息即可
/**,
* @swagger
* /users/login:
* post:
* tags:
* - 用户管理 #接口分类
* summary: 登录 #接口备注
* description: 登录 #接口描述
* consumes:
* - "application/json" #接口接收参数方式
* requestBody: #编写参数接收体
* required: true #是否必传
* content:
* application/json:
* schema: #参数备注
* type: object #参数类型
* properties:
* username:
* type: string #参数类型
* description: 用户名 #参数描述
* password:
* type: string #参数类型
* description: 密码 #参数描述
* example: #请求参数样例。
* username: "string"
* password: "string"
* responses: #编写返回体
* 200: #返回code码
* description: 注册成功 #返回code码描述
* content:
* application/json:
* schema:
* type: object
* properties:
* code: #返回的code码
* type: string
* description: 返回code码
* msg: #返回体信息。***注意写的位置一定要和res_code对齐。
* type: string #返回体信息类型
* description: 返回信息
* data:
* type: object
* description: 返回数据
* -1:
* description: 失败
* */
router.post('/login', server.login);
/**,
* @swagger
* /users/restPwd:
* post:
* tags:
* - 用户管理 #接口分类
* summary: 修改密码 #接口备注
* description: 修改密码 #接口描述
* consumes:
* - "application/json" #接口接收参数方式
* requestBody: #编写参数接收体
* required: true #是否必传
* content:
* application/json:
* schema: #参数备注
* type: object #参数类型
* properties:
* username:
* type: string #参数类型
* description: 用户名 #参数描述
* oldpwd:
* type: string #参数类型
* description: 密码 #参数描述
* newpwd:
* type: string #参数类型
* description: 密码 #参数描述
* example: #请求参数样例。
* username: "string"
* oldpwd: "string"
* newpwd: "string"
* responses: #编写返回体
* 200: #返回code码
* description: 注册成功 #返回code码描述
* content:
* application/json:
* schema:
* type: object
* properties:
* code: #返回的code码
* type: string
* description: 返回code码
* msg: #返回体信息。***注意写的位置一定要和res_code对齐。
* type: string #返回体信息类型
* description: 返回信息
* data:
* type: object
* description: 返回数据
* -1:
* description: 失败
* */
router.post('/restPwd', server.restPwd);
全部配置完之后,使用命令启动项目
npm start
项目启动后访问http://127.0.0.1:3000/swagger就会看到如下的swagger页面,然后可以对以上三个接口进行测试
最后
以上就是疯狂菠萝为你收集整理的Node.js+mongodb 学习笔记(三)swagger注释+用户管理Node.js+mongodb 学习笔记(三)swagger注释+用户管理的全部内容,希望文章能够帮你解决Node.js+mongodb 学习笔记(三)swagger注释+用户管理Node.js+mongodb 学习笔记(三)swagger注释+用户管理所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复