一张订单图做一个小项目四

12 篇文章 2 订阅

接口层  在routes/users.js/新建了登录和注册的接口 这个项目可能用不上注册和批量新增 因为他一个人用就够了

需要特殊处理的地方

1:密码需要加密  采用再带的crypto模块

2:登录以后返回token  使用jsonwebtoken模块 需要安装  npm  i  jsonwebtoken

三个接口 分别是 login   register  addmany   登录  单个注册  批量注册

弄完以后 启动服务  使用postman 接口测试工具 新增一个初始用户

var express = require('express');
var router = express.Router();
var crypto = require('crypto');
var jwt = require("jsonwebtoken");

let user = require("../model/user");

/* GET users listing. */
router.get('/', function (req, res, next) {
  res.send('respond with a resource');
});
router.get("/login", (req, res, next) => {
  let { username, userpwd } = req.query; //密码没有加密
  //比较的时候需要加密
  var md5 = crypto.createHash('md5');   //crypto模块功能是加密并生成各种散列
  userpwd = md5.update(userpwd).digest('hex');

  user.query({ username, userpwd }).then((data) => {
    if (data.length) {//表示有数据
      let usertype = data[0].usertype
      let userid = data[0]["_id"];
      var token = jwt.sign(
        { username, type: usertype, userid },
        "key", {
        expiresIn: 60 * 60 * 1  // 1小时过期
      })
      res.json({
        code: 1,
        msg: "成功",
        token: token,
        path: usertype == 1 ? "teacher" : "student",
      })
    } else {
      res.json({
        code: 0,
        msg: "用户名和密码不匹配"
      })
    }
  })


});

router.post("/register", (req, res, next) => {
  let { username, userpwd } = req.body;//解构取值
  //新增之前 判断用户名是否存在
  user.query({ username }).then((data) => {
    if (data.length) {//用户名存在
      res.json({
        code: 0,
        msg: "该用户已经存在"
      })

    } else {//不存在   注册
      var md5 = crypto.createHash('md5');   //crypto模块功能是加密并生成各种散列
      userpwd = md5.update(userpwd).digest('hex');
      user.register({ username, userpwd, usertype: 2 }).then((data) => {
        //console.log(data);
        res.json({
          code: 1,
          msg: "注册成功"
        })
      })
    }
  })
  //密码需要加密
})


router.post("/addmany", (req, res, next) => {
  let { list } = req.body;//解构取值
  // console.log(JSON.parse(list));//[{username:"leson1"},{username:"leson2"}]
  //[{username:"leson1",userpwd:"123456",usertype:2}]
  var newList = JSON.parse(list);
  var md5 = crypto.createHash('md5');
  var userpwd = userpwd = md5.update("123456").digest('hex');
  var type = 2;
  newList.forEach(item => {//重新整理集合
    item.userpwd = userpwd;
    item.usertype = type;
  })
  user.addmany(newList).then((data) => {
    if (data.length) {
      res.json({
        code: 1,
        msg: "新增成功"
      })
    } else {
      res.json({
        code: 0,
        msg: "新增失败"
      })
    }
  }, () => {
    res.json({
      code: 0,
      msg: "新增失败"
    })
  })


})

module.exports = router;

  

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值