1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Node.js+mongodb 学习笔记(三)swagger注释+用户管理

Node.js+mongodb 学习笔记(三)swagger注释+用户管理

时间:2020-12-23 11:26:47

相关推荐

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{//生成tokenconst 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页面,然后可以对以上三个接口进行测试

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。