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)=>{
        //生成goodsId
        const goodsId = md5(data.goodsName+secretKey);
        //根据goodsName查询goods
        const 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查询goods
        const 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查询goods
        const 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罐/箱"
	}

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

总结

踩坑路漫漫长@~@

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/431019.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

亚马逊卖家做市场分析业务可以用静态IP代理完成吗?

亚马逊作为全球最大的电商平台之一,其庞大的销售数据和用户行为数据成为了许多商家和市场研究人员进行市场分析和竞争研究的重要来源。而使用IP代理则能够为亚马逊市场分析带来许多帮助,下面就来一一介绍。静态IP代理可以为市场分析带来哪些帮助&#xf…

高维中介数据: 联合显着性(JS)检验法

摘要 中介分析在流行病学和临床试验中越来越受到关注。在现有的中介分析方法中,流行的联合显着性(JS)检验会产生过于保守的 I 类错误率,因此功效较低。但是,如果在使用 JS 测试高维中介假设时,可以准确控制…

表达式和语句

本文参考C Primer Plus进行C语言学习 文章目录 表达式语句 副作用和序列点复合语句(块)类型转换 1.表达式 表达式由运算符和运算对象组成。下面是一些表达式: 4 -6 421 a*(bc/d)/20 q5*2 xq%3 q>3 每个表达式都有一…

基于带时间窗口的电动汽车路由问题的精英对立学习的多群PSO(2022)

英文:Multi-swarm PSO based on Elite Opposite Learning on Electric Vehicle Routing Problem with Time Window 摘要: 带时间窗口的电动汽车路由问题(EVRPTW)是交通领域的一个新问题,用传统的精确求解方法很难解决…

vue3.0源码解析之数据代理Proxy

前言 多年前刚转前端的时候,对频繁的拼接页面元素深恶痛绝,当时是通过封装字符串模版来处理页面的。之后又陆续发现,数据变化后需要频繁的修改dom节点来操作页面,便不得不自己写很多更新的代码,直到出现了vue和react、…

【排序】详解堆排序

一、思想 堆排序是一种基于比较的排序算法,且使用了堆的数据结构来辅助进行排序。其思想是利用堆的特性,即在每个节点都保证是最大(大顶堆)或者最小(小顶堆)的关键码。具体原理和步骤如下: 构…

基于SpringBoot的论坛系统(附项目源码+论文)

摘要 如今的时代,是有史以来最好的时代,随着计算机的发展到现在的移动终端的发展,国内目前信息技术已经在世界上遥遥领先,让人们感觉到处于信息大爆炸的社会。信息时代的信息处理肯定不能用之前的手工处理这样的解决方法&#xf…

最值得入手的五款骨传导耳机,六大专业的选购技巧

亲爱的小伙伴们,你们是否曾因长时间戴着耳机而感到耳朵不适,比如耳朵闷痛、发痒,甚至出现异味?现在有一种耳机可以帮你解决这些问题,它就是骨传导耳机。这种耳机的设计避免了传统入耳式耳机可能带来的堵塞感和细菌滋生…

【prompt五】CoCoOP:Conditional Prompt Learning for Vision-Language Models

motivation 随着像CLIP这样强大的预训练视觉语言模型的兴起,研究如何使这些模型适应下游数据集变得至关重要。最近提出的一种名为上下文优化(CoOp)的方法将提示学习(nlp的最新趋势)的概念引入视觉领域,以适应预训练的视觉语言模型。具体来说,CoOp将提示中的上下文单词转换为…

Golang 程序启动原理详解

一.编译 go源代码首先要通过 go build 编译为可执行文件,然后去机器上直接执行的,在 linux 平台上为 ELF 格式的可执行文件,linux 能直接执行这个文件,而编译阶段会经过编译器、汇编器、链接器三个过程最终生成可执行文件 编译器:*.go 源码通…

数字逻辑与计算机组成

冯诺依曼计算机 计算机结构 计算机特点 1.采用二进制 2.程序存储 2.由五大部件组成计算机系统:运算器、存储器、控制器、输入设备和输出设备 计算机硬件系统的层次 中央处理器(CPU):运算器 控制器 计算机主机:…

【韩国留学】四大生活技能 学起来!柯桥留学中介韩语学习

如何高效拿学分 在韩国大学,学分是评价学生学习成果的重要标准。要想高效拿学分,首先要制定合理的学习计划。明确每学期需要修的课程,并提前预习,了解课程重点和难点。 其次,要积极参与课堂讨论,这不仅能提…

社科院与杜兰大学金融管理硕士——让我们的读研梦想,与春天一同醒来

随着春天的到来,万物复苏,生机盎然。在这个充满希望的季节里,你的读研梦想觉醒了吗?社科院与杜兰大学金融管理硕士项目为你提供梦想的种子,它将在你心中生根发芽,助你在学术殿堂里收获丰硕的果实。 中国社会…

第七个程序:两个字符串连接后计算长度

实验步骤; 第一步:新建项目 第二步:程序编写 第三步:运行结果 Labview一共7个字节,长度为7,一个字母一个字节 汉字为2个字节,图一为4,图二为8 所以结果分别为11和15 视频教学: 字…

javaWebssh题库管理系统myeclipse开发mysql数据库MVC模式java编程计算机网页设计

一、源码特点 java ssh题库管理系统是一套完善的web设计系统(系统采用ssh框架进行设计开发),对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Mye…

U410866 统计分数

本题为本人原创,请勿抄袭。 难度:普及- 题目背景 为了统计学生们的分数和排名,老师们翻来覆去睡不着觉。请你为老师编写一个这样的程序。 题目描述 这是一题将结构体和排序结合在一起的题。 输入格式 输入: 第一行&…

javascript操作BOM的方法

目录 1.window.alert() 2.window.confirm() 3.window.prompt() 4.window.location() 5.window.navigator() 6.window.screen() 7.window.history() 8.window.setTimeout() 和 window.clearTimeout() 9.window.setInterval() 和 window.clearInterval() BOM&#xff08…

Unity 轮转图, 惯性, 自动回正, 点击选择

简单的实现 2D 以及 3D 的轮转图, 类似于 Web 中无限循环的轮播图那样. 文中所有代码均已同步至 github.com/SlimeNull/UnityTests 3D 轮转图: Assets/Scripts/Scenes/CarouselTestScene/Carousel.cs2D 轮转图: Assets/Scripts/Scenes/CarouselTestScene/UICarousel.cs 主要逻…

【学习记录】C++面向对象高级编程【更新中】

C面向对象高级编程 1 inline-内联函数1.1 什么是内联函数?1.2 为什么需要内联函数? 2 构造函数2.1 构造函数是什么?2.2 为什么需要构造函数?2.3 ctor(构造函数)可以有很多个-overloading重载2.4 ctors放在private区-Singleton 3 参…

Anthropic发布最强大模型Claude 3,实力碾压GPT-4和Gemini!

前言 2024年3月4日,Anthropic 发布了Claude 3新版系列模型,含Haiku、Sonnet 和 Opus三个版本。其中最强大的模型在各种基准测试中均优于OpenAI的GPT-4和Google的 Gemini 1.0 Ultra,已成为大模型领域的新巨头。 大家如果对AI感兴趣&#xff0c…