当前位置: 首页 > news >正文

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

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

文章目录

  • 前言
  • 一、新建models/goods.js
  • 二、新建routes/goods.js
  • 三、添加goods表
  • 四、添加商品
  • 总结


前言

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

一、新建models/goods.js

models/goods.js

const query = require('../config/db');
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 goodsDao = {//注册addGoodsByShopIdAndUserId:async(data)=>{//生成goodsIdconst goodsId = md5(data.goodsName+secretKey);//根据goodsName查询goodsconst sql = `insert into goods (goodsId,goodsName,createId,shopId,price,inventory,specs) values('${goodsId}','${data.goodsName}','${data.createId}','${data.shopId}','${data.price}','${data.inventory}','${data.specs}')`;const result = await query(sql);if(result&&result.affectedRows==1)return sucFun({},'添加商品成功');return errFun('添加商品失败');},//通过商品名查询商品信息queryGoodsByGoodsName:async(data)=>{//根据goodsName查询goodsconst sql = `select * from goods where goodsName='${data.goodsName}'`;const result = await query(sql);if(result&&result.length>0)return sucFun(result[0],'查询商品成功');return errFun('查询商品失败');},//通过商品名查询商品信息queryGoodsByGoodsId:async(data)=>{//根据goodsName查询goodsconst sql = `select * from goods where goodsName='${data.goodsName}'`;const result = await query(sql);if(result&&result.length>0)return sucFun(result[0],'查询商品成功');return errFun('查询商品失败');},
}module.exports = goodsDao;

在这里插入图片描述

二、新建routes/goods.js

routes/goods.js

const goodsDao = require('../models/goods');
const goodsRoutes = (router)=>{router.post('/goods/addGoodsByShopIdAndUserId',async (req,res)=>{const result = await goodsDao.addGoodsByShopIdAndUserId(req.body);res.json(result);});
}
module.exports = goodsRoutes;

在这里插入图片描述

三、添加goods表

在这里插入图片描述

四、添加商品

url:http://localhost:1990/goods/addGoodsByShopIdAndUserId
name:/goods/addGoodsByShopIdAndUserId
params:{"goodsName": "百世可乐","createId": "d9ef196010ee41be28ba70a0f819da9d","shopId": "be2383f2c80fbc672f4b506976c4e502","price":60.00,"inventory":500,"specs":"24罐/箱"
}

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

params:{"goodsName": "可口可乐","createId": "d9ef196010ee41be28ba70a0f819da9d","shopId": "be2383f2c80fbc672f4b506976c4e502","price":65.00,"inventory":500,"specs":"24罐/箱"}

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

总结

踩坑路漫漫长@~@

http://www.lryc.cn/news/313802.html

相关文章:

  • java实现大文件的分割与合并
  • 【计网】TCP协议安全与风险:深入探讨网络通信的基石
  • 苹果App Store上架工具介绍
  • TCP重传机制、滑动窗口、拥塞控制
  • electron+vue3全家桶+vite项目搭建【29】封装窗口工具类【3】控制窗口定向移动
  • 深入了解304缓存原理:提升网站性能与加载速度
  • python-批量操作excel
  • #QT(串口助手-界面)
  • C语言进阶——位段
  • 软件设计师软考题目解析23 --每日五题
  • 总结:前后端集合、数组类型数据交互底层原理,SpringBoot框架解析
  • 2024蓝桥杯每日一题(前缀和)
  • 2007-2022年上市公司迪博内部控制评价缺陷数量数据
  • JAVA虚拟机实战篇之内存调优[4](内存溢出问题案例)
  • qt自定义时间选择控件窗口
  • 如何不解压直接读取gzip文件里面的文件
  • python 截取字符串string.split
  • SpringBoot+Vue实现el-table表头筛选排序(附源码)
  • Linux学习之线程
  • 【JavaEE初阶】 JVM类加载简介
  • .NET Core依赖注入(IoC)不使用构造函数实现注入
  • WinSCP下载安装并结合内网穿透实现固定公网TCP地址访问本地服务器
  • 内联函数|auto关键字|范围for的语法|指针空值
  • 家用洗地机哪个型号好用?介绍几个值得考虑的品牌
  • 力扣-数组题
  • 将List转换为数组或者将数组转换为List,如果改变了原始值,转换后的数据会发生改变吗?
  • 七彩虹@电脑cpu频率上不去问题@控制中心性能模式cpu频率上不去@代理服务器超时@账户同步设置失败
  • 抖音怎么开店?抖音小店开店流程讲解,可收藏!
  • leetcode 热题 100_轮转数组
  • 华为设备小型园区网方案(有线+无线+防火墙)