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.hqwc.cn/news/509448.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

跨境电商独立站|代购+集运,这是什么东西?

代购集运,这是什么东西? 跨境集运搭建跨境电商独立站 代购,释义为代理购买。通俗意思就是找人帮忙购买你需要的商品,原因可以是你在当地买不到这件商品,可以是当地这件商品的价格比其他地区的贵,也可以是为…

模拟算法题练习(一)(扫雷,灌溉,回文日期)

目录 模拟算法介绍: (一、扫雷) (二、灌溉) (三、回文日期) 有一说一这题大佬的题解是真的强 模拟算法介绍: 模拟算法通过模拟实际情况来解决问题,一般容易理解但是实…

Windows上构建一个和Linux类似的Terminal

感谢大佬批评指正,现已更新 preview Target:致力打造最赏心悦目Window下的终端,同时能够很接近Linux的使用习惯 key word:windows终端美化 windows terminal windows powershell 类似Linux下的Window终端 Window也能用ll windows…

Linux编程3.1 进程-进程的概念

前情提及: 程序和进程内核中的进程结构C程序启动过程进程终止方式非局部跳转进程资源限制进程创建、执行和终止进程类型进程状态进程组 进程的概念 进程:程序运行,由操作系统内核对该程序进行资源的分配 , 进程中,再…

牛客练习赛122

D:圆 正着求删除的最小代价不好做,采用逆向思维,求选择一些不相交的线段使得构成一个圆的代价尽量大,最后答案就是所有线段权值之和减去最大代价。 那么如何求这个最大代价呢?显然区间DP 老套路:破环成链&#xff0…

【学习心得】网站运行时间轴(爬虫逆向)

一、网站运行时间轴 掌握网站运行时间轴,有助于我们对“请求参数加密”和“响应数据加密”这两种反爬手段的深入理解。 二、从网站运行的时间轴角度来理解两种反爬手段 1、加载HTML: 这是浏览器访问网站时的第一步,服务器会返回基础…

2024|CISP认证详细报考流程和条件

证书介绍 CISP(Certified Information Security Professional,注册信息安全专业人员)证书是由中国信息安全测评中心(CNITSEC)颁发的专业资质证书,旨在为信息安全领域培养和认证具备一定专业水平的安全人才…

5.测试教程 - 进阶篇

文章目录 1.按测试对像划分1.1**界面测试**1.2**可靠性测试**1.3**容错性测试**1.4**文档测试**1.5**兼容性测试**1.6**易用性测试**1.7**安装卸载测试**1.8**安全测试**1.9**性能测试**1.10**内存泄漏测试** 2.按是否查看代码划分2.1黑盒测试(Black-box Testing)2.2白盒测试(W…

框架漏洞-->Struts2 Docker_Vulnhub搭建

来浅浅的讲一下Struts2漏洞 目录 1.Docker_Vulnhub搭建 2.Struts2 3.Struts2的框架特征 4.S2-029-->Remote Code Execution 5.漏洞复现 1.RCE 2.Getshell 1.Docker_Vulnhub搭建 因为我用的是Linux,所以我选择直接搭个docker,这里我建议先换个…

绝对定位的一些特性;CSS绝对定位absolute

想要实现如下效果: yellow区域是宽度是100%;想要一个按钮在右侧,且和蓝色区域右侧对齐 思考 毋庸置疑,按钮肯定得使用绝对定位,但是绝对定位的定位位置肯定不能写死,因为这个是个公共组件,黄色…

WPF TabControl 滚动选项卡

文章目录 前言相关链接TabControl是什么东西通过模板副本查看样式IsItemsHost如何修改HandyControl的TabControl 滚动 总结 前言 我原本以为是很简单的事情,但是没想到实际做起来还是有很多的基础知识点的。 相关链接 WPF 控件库——可拖动选项卡的TabControl Tab…

鸿蒙App开发新思路:小程序转App

国家与国家之间错综复杂,在谷歌的安卓操作系统“断供”后,鸿蒙系统的市场化&独立化的道路便显而易见了。 2024年1月18日,华为宣布,不再兼容安卓的“纯血鸿蒙”--HarmonyOS NEXT鸿蒙星河版最终面世,并与2024年Q4正…