[NodeJS]---cqManger后台管理系统

项目要求

英雄后台管理

实现功能 地址
登录 /login.html
主页 /index.html
新增 /insert.html
注册 /register.html
更新 /update.html

一、项目展示

  1. 注册
    在这里插入图片描述
  2. 登录
    在这里插入图片描述
  3. 主页
    在这里插入图片描述
  4. 更新
    在这里插入图片描述
  5. 新增
    在这里插入图片描述
    二、接口信息
功能 地址 解释
判断是否登录 /isLogin 基于第三方模块cookie-session的判断登录接口
查询所有信息 /index.html 基于mysql模块的查询
编辑 //hero/update 基于mysql模块的更新
删除 //hero/delete 对mysql中isDelete键的软删除
验证码 /captcha 基于第三方模块:svg-captcha的验证码生成
用户注册 /hero/register 密码加密,再进行注册,写入数据库
登录 /user/login 查询数据库信息,并核实
退出登录 /logout 退出登录

三、接口详细

  • 登录接口:
    主要是通过数据库中的数据查询来验证,是否登录了,并且设置登录的cooike信息
app.post('/user/login', (req, res) => {
    
    
    let {
    
     username, password } = req.body
    userModel.find(`username="${
      
      username}" and password="${
      
      password}"`, (err, results) => {
    
    
        if (err == null) {
    
    
            if (results.length > 0) {
    
    
                // 设置cooike
                req.session.user = {
    
     username, password };
                res.send({
    
    
                    code: 200,
                    msg: '登录成功'
                })
            } else {
    
    
                res.send({
    
    
                    code: 401,
                    msg: '账号或密码错误'
                })
            }
        } else {
    
    
            res.send({
    
    
                code: 500,
                msg: '服务器错误'
            })
        }
    })

})
  • 退出登录
    主要是清除cooike信息和重定向到登录页面
app.get('/logout', (req, res) => {
    
    
    // 清除cooike
    req.session = null
    // 重定向
    res.writeHead(302, {
    
    
        'Location': './login.html'
    })
    res.end()
})
  • 删除
    主要进行的是一个软删除,即修改数据isDelete项
app.post('/hero/delete', (req, res) => {
    
    
    let {
    
     id } = req.body
    heroModel.update(`id=${
      
      id}`, {
    
     isDelete: 'true' }, (err, results) => {
    
    
        if (err == null) {
    
    
            res.send({
    
    
                code: 200,
                msg: '删除成功'
            })
        } else {
    
    
            res.send({
    
    
                code: 500,
                msg: '服务器错误'
            })
        }
    })
})
  • 查询所有信息
    这个主要是查询未进行软删除的项,而且还支持更具关键字查询,即(模糊查询)
app.get('/hero/list', (req, res) => {
    
    
    //查询当前的cookie
    let {
    
     search } = req.query

    if (!search) {
    
    
        // undefined
        heroModel.find('isDelete="false"', (err, results) => {
    
    
            if (err == null) {
    
    
                res.send({
    
    
                    code: 200,
                    heros: results,

                })
            } else {
    
    
                res.send({
    
    
                    code: 500,
                    msg: '服务器错误'
                })
            }
        });
    } else {
    
    
        heroModel.find(`heroName like '%${
      
      search}%' and isDelete ="false"`, (err, results) => {
    
    
            if (err == null) {
    
    
                res.send({
    
    
                    code: 200,
                    heros: results,

                })
            } else {
    
    
                res.send({
    
    
                    code: 500,
                    msg: '服务器错误'
                })
            }
        })
    }

})
  • 判断是否登录
    后端
app.get('/isLogin', (req, res) => {
    
    
//把cooike信息返回
    res.send(req.session.user)
})

前端
判断是否为空,来判断登录状态

<!-- 发送ajax请求判断是否登录 -->
  <script>
    $.ajax({
    
    
      type: 'get',
      url: 'http://127.0.0.1:4399/isLogin',
      success: function (backData) {
    
    
        if (backData == '') {
    
    
          // 没有登录
          alert('你没有登录请登录')
          window.location.href = './login.html'
        }
      }
    })
  </script>

源码下载

猜你喜欢

转载自blog.csdn.net/CSDNzhaojiale/article/details/107283455