使用Vue+MySQL实现登录注册的实战案例

1.新建vue项目并连接数据库

具体步骤见vue连接mysql数据库

2.新建登录页面、注册页面和首页

在src/views文件夹下,新建 login.vue(登录页面)、register.vue(注册页面) 和 home.vue(首页)

根据自己的喜好搭建页面(本人此处使用了elementUI的组件,cv前要先安装elementUI中间件)

npm i element-ui -S




页面效果

使用Vue+MySQL实现登录注册的实战案例_第1张图片

使用Vue+MySQL实现登录注册的实战案例_第2张图片

使用Vue+MySQL实现登录注册的实战案例_第3张图片

3.页面路由配置

在src/router/index.js中配置页面对应路由

import Vue from 'vue'
import VueRouter from 'vue-router'

Vue.use(VueRouter)

const home = () => import("../views/home.vue")    //懒加载
const login = () => import("../views/login.vue")
const register = () => import("../views/register.vue")

const routes = [
  {
    path: '',
    redirect: '/login'   //重定向
  },
  {
    path: '/login',
    name: 'login',
    component: login
  },
  {
    path: '/register',
    name: 'register',
    component: register
  },
  {
    path: '/home',
    name: 'home',
    component: home,
  }
]

const router = new VueRouter({
  mode: 'history',
  base: process.env.BASE_URL,
  routes
})

//解决相同路径跳转报错问题
//使用push的方法
const RouterPush = VueRouter.prototype.push
VueRouter.prototype.push = function push (to) {
  return RouterPush.call(this, to).catch(err => err)
}

//使用replace的方法
const RouterReplace = VueRouter.prototype.replace
VueRouter.prototype.replace = function replace (to) {
  return RouterReplace.call(this, to).catch(err => err)
}

export default router

4.新建/server/API/login.js

接收 req.query / req.bosy 传递来的参数,通过查询语句查询对应数据并放回结果

let db = require('../db/index')

exports.login = (req, res) => {
  var sql = 'select * from user where name = ? and password = ?'
  db.query(sql, [req.query.name, req.query.password], (err, data) => {
      if(err) {
          return res.send({
            status: 400,
            message: "登录失败"
          })
      }
      
      if(data.length > 0) {
        res.send({
          status: 200,
          message: "登录成功"
        })
      }else{
        res.send({
          status: 202,
          message: '用户名或密码错误'
        })
      }
  })
}

exports.register = (req, res) => {
  const sql1 = 'select * from user where name = ?'
  const sql2 = 'insert into user (name, password) value (?, ?)'
  db.query(sql1, [req.body.params.name], (err, data) => {
    if(err) {
      return res.send({
        status: 400,
        message: "操作失败"
      })
    }
    if(data.length > 0) {
      return res.send({
        status: 202,
        message: '用户名已存在'
      })
    }else{
      db.query(sql2, [req.body.params.name, req.body.params.password], (err, data) => {
        if(err) {
            return res.send({
              status: 400,
              message: "注册失败"
            })
        }
        res.send({
          status: 200,
          message: "注册成功"
        })
      })
    }
  })
}

5.在/server/router.js中配置对应路由

let express = require('express')
let router = express.Router()
let login = require('./API/login')

router.get('/login', login.login)
router.post('/register', login.register)

module.exports = router

6.在/views/login.vue、/views/register.vue和/views/home.vue中编写相应方法









效果展示

登录注册demo

git源码地址:https://gitee.com/xie-xiaochun/login-registration-demo
注意:资源中不包含数据库,需自己创建数据库,并修改源码中数据库的相关信息。

总结 

到此这篇关于使用Vue+MySQL实现登录注册的文章就介绍到这了,更多相关Vue+MySQL登录注册内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

你可能感兴趣的:(使用Vue+MySQL实现登录注册的实战案例)