express+mysql+vue,从零搭建一个商城管理系统5--用户注册

提示:学习express,搭建管理系统

文章目录


前言

需求:主要学习express,所以先写service部分

一、新建user表

1、express_service数据库,鼠标右键点击表

2、点击新建表

3、创建user表

3、ctrl+s保存,输入user,点击确认

4、设计表添加栏位userID、userName、password


二、安装bcryptjs、MD5、body-parser

bcryptjs是对密码进行加密的插件
body-parser对http请求进行解析

c 复制代码
 npm install bcryptjs --save
c 复制代码
npm install md5 --save
c 复制代码
npm install body-parser --save

三、修改config/db.js

c 复制代码
const mysql = require('mysql');
const pool = mysql.createPool({
    host:'localhost',
    ipport:'3306',
    user:'root',
    password:'123456',
    database:'express_service'
});

const query = (sql,params,callback)=>{
    return new Promise((resolve,reject)=>{
        pool.getConnection((err,connect)=>{
            if(err) reject(err);
            connect.query(sql,params,(err,result)=>{
                if(err) reject(err);
                return resolve(result);
            });
        });
    });
}
module.exports = query;

四、新建config/bcrypt.js

bcrypt.js

c 复制代码
const bcryptJs = require('bcryptjs');

const bcrypt = {
    hash:(txt,salt=9)=>{
        return bcryptJs.hashSync(txt,salt);
    },
    compare:(txt,hash)=>{
        return bcryptJs.compareSync(txt,hash);
    },
}

module.exports = bcrypt;

五、新建models文件夹和models/user.js

user.js

c 复制代码
const query = require('../config/db');
const bcrypt = require('../config/bcrypt');
const md5 = require('md5');
const secretKey = 'longlongago';

const errFun = (msg,code)=>{
    return {
        code:code||500,
        success:false,
        msg:msg||'操作失败'
    }
}

const sucFun = (data,msg)=>{
    return {
        code:200,
        success:true,
        msg:msg||'操作成功',
        data,
    }
}

const userDao = {
    register:async(data)=>{
        //这里只添加user到数据库,不做验证和检验
        const userId = md5(data.userName+secretKey);
        const password = bcrypt.hash(data.password+secretKey);
        const sql = `insert into user (userId,userName,password) values('${userId}','${data.userName}','${password}')`;
        const result = await query(sql);
        console.log(result)
        // return result;
        if(result&&result.affectedRows==1)return sucFun(result[0],'添加用户成功');
        return errFun('添加用户失败');
    },
}

module.exports = userDao;

五、index.js引入使用body-parser

c 复制代码
const express = require('express');

const app = express();
const router = express.Router();

const bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());

const port = 1990;

require('./config/db');

//初始化路由
require('./routes/index')(router);

app.use('/', router);
app.listen(port,()=>{
    console.log('http://localhost:'+port);
})

六、修改routes/user.js

c 复制代码
const userDao = require('../models/user');
const userRoutes = (router)=>{
    router.post('/user/register',async (req,res)=>{
        const result = await userDao.register(req.body);
        res.json(result);
    });
}
module.exports = userRoutes;

七、启动项目

c 复制代码
npm run dev

八、配置Apipost接口/user/register

使用到的工具是Apipost

1、新建目录

2、目录命名express_service

3、鼠标右键点击express_service,新建user子目录

4、右键点击user子目录,新建接口

5、接口配置

url:http://localhost:1990/user/register

name:/user/register

params:{

"userName":"longlongago",

"password":"123456"

}

九、访问/user/register


总结

踩坑路漫漫长@~@

相关推荐
志尊宝3 小时前
Vue3 零基础每日笔记(082):文件上传实战——el-upload 校验、自定义上传、头像预览
前端·javascript·vue.js·笔记·#javascript·#vue.js
geovindu5 小时前
sql:Search-Optimized SQL Queries using mysql 9.0
android·数据库·sql·mysql·数据库开发·数据库架构
for_ever_love__5 小时前
MySQL SELECT 与 WHERE 优化实战:可搜索条件、联合索引与执行计划
数据库·mysql·oracle·select·where·条件优化·查询优化技巧
2501_931803755 小时前
MySQL 锁机制详解
数据库·mysql
.Hypocritical.8 小时前
MySQL |常用 SQL 语句与 pymysql 函数
mysql
NineData8 小时前
MySQL 到 Doris 实时数据同步:订单、用户和日志数据入仓方案
数据库·mysql
m0_587383009 小时前
无人自助拼豆系统落地开发实战指南 核心逻辑实现与部署经验分享
前端·javascript·vue.js·人工智能·经验分享·需求分析
Dovis(誓平步青云)9 小时前
现场问题先关闭还是先验收,建筑任务怎样处理依赖
前端·javascript·数据库·mysql·音视频
.Hypocritical.10 小时前
SpringBoot+Vue 前后端分离项目部署到云服务器
服务器·vue.js·spring boot
xuefuhe10 小时前
MySQL:group_replication_start_on_boot vs group_replication_bootstrap_group
mysql