express+mysql+vue,从零搭建一个商城管理系统9--添加商户

本文介绍了如何在Express框架中创建models/shop.js来处理商户数据,包括注册验证、查询和添加功能,并在routes/shop.js中设置POST路由。通过实例展示了添加商户的过程以及遇到的问题解决。
摘要由CSDN通过智能技术生成

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


前言

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

一、新建models/shop.js

models/shop.js

const query = require('../config/db');
const bcrypt = require('../config/bcrypt');
const md5 = require('md5');
const jwt = require('../config/jwt');
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 shopDao = {
    //注册
    addShopByUserId:async(data)=>{
        //验证账号密码格式
        const validateResult =shopDao.validateShopName(data);
        if(!validateResult.success)return errFun(validateResult.msg);
        //查询商户名是否已存在
        const userResult = await shopDao.queryShopByShopName(data);
        if(userResult.success)return errFun('商户名已存在');
        //生成shopId
        const shopId = md5(data.shopName+secretKey);
        //根据shopName查询shop
        const sql = `insert into shop (shopId,shopName,createId) values('${shopId}','${data.shopName}','${data.createId}')`;
        const result = await query(sql);
        if(result&&result.affectedRows==1)return sucFun({},'添加商户成功');
        return errFun('添加商户失败');
    },
    //通过商户名查询商户信息
    queryShopByShopName:async(data)=>{
        //根据shopName查询shop
        const sql = `select * from shop where shopName='${data.shopName}'`;
        const result = await query(sql);
        if(result&&result.length>0)return sucFun(result[0],'查询商户成功');
        return errFun('查询商户失败');
    },
    //通过商户名查询商户信息
    queryShopByShopId:async(data)=>{
        //根据shopName查询shop
        const sql = `select * from shop where shopName='${data.shopName}'`;
        const result = await query(sql);
        if(result&&result.length>0)return sucFun(result[0],'查询商户成功');
        return errFun('查询商户失败');
    },
    //验证商户名密码
    validateShopName:(data)=>{
        //只包含大小写字母数字,包含1种即可
        let nameReg = /[\da-zA-z]{6,16}$/;
        let nameValidate = nameReg.test(data.shopName);
        if(!nameValidate)return errFun('商户名格式错误');
        return sucFun({},'商户名格式正确');
    },
}

module.exports = shopDao;

在这里插入图片描述

二、新建routes/shop.js

routes/shop.js

const shopDao = require('../models/shop');
const shopRoutes = (router)=>{
    router.post('/shop/addShopByUserId',async (req,res)=>{
        const result = await shopDao.addShopByUserId(req.body);
        res.json(result);
    });
}
module.exports = shopRoutes;

在这里插入图片描述

三、修改routes下的index.js

读取routes文件夹下的所有文件列表,过滤去掉index.js之后,引入并实例化剩余route
一劳永逸,不用每次添加route文件,都得修改index.js文件

const fs = require('fs');
const routes = (router)=>{
    const files = fs.readdirSync(__dirname)||[];
    files.forEach(item=>{
        if(item.indexOf('index')==-1)require(__dirname+'/'+item)(router);
    })
}

module.exports = routes;

在这里插入图片描述

四、添加商户

url:http://localhost:1990/shop/addShopByUserId
name:/shop/addShopByUserId
params:{
	"shopName": "shop01",
	"createId": "d9ef196010ee41be28ba70a0f819da9d"
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

params:{
	"shopName": "shop01",
   	"createId": "e9fd658aa2e171a3c145c4586d750b50"
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

总结

踩坑路漫漫长@~@

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值