Express框架开发接口之轮播图API

news2024/11/23 19:21:46

1.获取所有轮播图、

// 处理轮播图
const handleDB = require('../handleDB/index')
// 获取所有轮播图
exports.allCarousel = (req, res) => {
    (async function () {
        let results = await handleDB(res, "book_carousel", "find", "查询数据出错!", { where: `status=0` });
        if (results.length < 1) {
            res.send({ code: 0, message: '轮播图列表为空' })
        }
        const total = results.length;
        res.send({ code: 200, message: '获取轮播图成功', data: results, total: total })
    })()
}

2.添加或者更新轮播图

(用cdn修改图片)先不写

// 导入数据库操作模块
const db = require('../db/index')

//引入七牛文件
const  upload_file=require('../utils/qn')

const constant=require('../utils/constant');
//添加轮播图
exports.addCarousel = (req, res) => {
  const { id } = req.body;
  if (id) {
    const sql = `update info_carousel set ? where id=${id}`
    db.query(sql, [req.body, req.body.id], (err, results) => {
      // 执行 SQL 语句失败
      if (err) return res.cc(err)
      // SQL 语句执行成功,但是影响行数不等于 1
      if (results.affectedRows !== 1) return res.cc('更新轮播图失败!')
      // 更新轮播图成功
      res.cc('更新轮播图成功!', 0)
    })
  } else {
    const sql = `insert into info_carousel set ?`
    db.query(sql, req.body, (err, results) => {
      // SQL 语句执行失败
      if (err) return res.cc(err)

      // SQL 语句执行成功,但是影响行数不等于 1
      if (results.affectedRows !== 1) return res.cc('新增轮播图失败!')

      // 新增轮播图成功
      res.cc('新增轮播图成功!', 0)
    })

  }

}

3.根据id删除轮播图

// 根据id删除轮播图
exports.delCarousel = (req, res) => {
    (async function () {
        //  console.log(11);
        const id = req.params.id;
        if (!id) {
            res.send({ code: 0, message: '获取参数为空' })

        }

        // 3根据id查询数据库是否存在该轮播图
        let result = await handleDB(res, "book_carousel", "find", "book_carousel查询出错", {
            where: `id = ${id} AND status = 0`
        });
        console.log(result);
        // 4 检查指定 id 的轮播图是否存在

        if (result.length !== 1) return res.send({ code: 0, message: '该轮播图不存在!' })
        let results = await handleDB(res, "book_carousel", "update", "查询数据出错!", `id= ${id}`, { status: 1 });

        // 6 SQL 语句执行成功,但是影响行数不等于 1
        if (results.affectedRows !== 1) return res.send({ code: 0, message: '删除轮播图失败!' })
        res.send({ code: 200, message: '删除轮播图成功', });
    })()
}

Model.prototype.find = function (options, callback) {
    if (!isConnect) {
        console.log(options.constructor);
        this.connect(err => {
            isConnect = true;
            var str = '';
            if (!callback) {
                str = `select * from ${this.name}`;
                callback = options;
            } else if (options.constructor == Array) {
                str = `select ${options.join()} from ${this.name}`;
                console.log(str, '000');
            } else {
                str = `select * from ${this.name} where ${options.where}`;
                console.log(str, '111');
            }
            console.log(str);
            connection.query(str, (error, results, fields) => {
                callback(error, results, fields);
            });
            return this;
        })
    } else {

        var str = '';
        if (!callback) {
            str = `select * from ${this.name}`;
            callback = options;
        } else if (options.constructor == Array) {
            str = `select ${options.join()} from ${this.name}`;
        } else {

            str = `select * from ${this.name} where ${options.where}`;
            console.log(str, '333');
        };
        //console.log(str);
        connection.query(str, (error, results, fields) => {
            callback(error, results, fields);
        });
        return this;
    }

};

修该了这两个地方(传入对象)这种格式

{
            where: `id = ${id} AND status = 0`
        }

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python 生成Android不同尺寸的图标

源代码 # -*- coding: utf-8 -*- import sys import os import shutil from PIL import Imagedef generateAndroidIcons():imageSource icon.pngicon Image.open(imageSource)sizes [(android/drawable,512),(android/drawable-hdpi,72),(android/drawable-ldpi,36),(andro…

C# 发送邮件

1.安装 NuGet 包 2.代码如下 SendMailUtil using MimeKit; using Srm.CMER.Application.Contracts.CmerInfo; namespace Srm.Mail { public class SendMailUtil { public async static Task<string> SendEmail(SendEmialDto sendEmialDto,List<strin…

11月2日星期四今日早报简报微语报早读

11月2日星期四&#xff0c;农历九月十九&#xff0c;早报微语早读分享。 1、茅台深夜提价&#xff1a;11月1日起飞天、五星出厂价格平均上调约20&#xff05;&#xff0c;贵州茅台&#xff1a;市场指导价不变&#xff1b; 2、杭州拟发文规范直播电商业&#xff1a;不得要求商…

2015年亚太杯APMCM数学建模大赛C题识别网络中的错误连接求解全过程文档及程序

2015年亚太杯APMCM数学建模大赛 C题 识别网络中的错误连接 原题再现 网络是描述真实系统结构的强大工具——社交网络描述人与人之间的关系&#xff0c;万维网描述网页之间的超链接关系。随着现代技术的发展&#xff0c;我们积累了越来越多的网络数据&#xff0c;但这些数据部…

vs2013/2015/2019扩展-联机提示“未能建立到服务器的连接“/“基础连接已经关闭: 发送时发生错误“/“远程主机强迫关闭了一个现有的连接“

VS2013\VS2015 输入命令 [Net.ServicePointManager]::SecurityProtocol[Net.ServicePointManager]::SecurityProtocol-bOR [Net.SecurityProtocolType]::Tls12 采用上述方法偶尔可以有效&#xff0c;重新启动VS就没用了 VS2019 怎么样都不行 最终解决办法&#xff1a;换一…

CRM系统如何帮助企业实现管理信息化?

21世纪的今天&#xff0c;企业不重视CRM信息化会导致什么后果&#xff1f;我们先来看这个例子—— 假设有一家中小型电子商务公司&#xff0c;他们销售各种电子产品&#xff0c;如手机、平板、电脑和配件等。在开始使用CRM系统之前&#xff0c;他们的客户数据分散在各个部门的…

自己动手实现一个深度学习算法——三、神经网络的学习

文章目录 1.从数据中学习1&#xff09;数据驱动2&#xff09;训练数据和测试数据 2.损失函数1)均方误差2)交叉熵误差3)mini-batch学习 3.数值微分1&#xff09;概念2&#xff09;数值微分实现 4.梯度1&#xff09;实现2&#xff09;梯度法3&#xff09;梯度法实现4&#xff09;…

kvm--存储挂载

创建存储卷 然后后面分别挂载到虚拟机不同目录下 查看磁盘 格式化&#xff08;需要挂载的分区或磁盘&#xff09; 获得UUID 挂载磁盘或分区 开机自动挂载 vim /etc/fstab mount -a 不报错就可以了

linux驱动学习加强版-7(平台虚拟总线的引入)

文章目录 一、为什么要引入平台虚拟总线二、平台虚拟总线架构三、使用platform框架去写一个驱动 一、为什么要引入平台虚拟总线 Linux platform driver机制和传统的device_driver机制相比&#xff0c;一个十分明显的优势在于platform机制将本身的资源注册进内核&#xff0c;由…

【sql注入】sql关卡1~4

前言&#xff1a; 靶场自取 level-1 测试注入点 POC: 1,1,1,1"",1/1,1/0 》存在注入点 爆破 POC: id-1andextractvalue(1,concat(0x7e,user(),0x7e))-- level-2 尝试注入点 POC1:admin POC2:admin POC3:adminandsleep(3)-- POC4: adminandif(1,1,0)0-- POC…

AtCoder abc143

D - Triangles 排序后two pointer # -*- coding: utf-8 -*- # time : 2023/6/2 13:30 # author : yhdutongwoo.cn # desc : # file : atcoder.py # software : PyCharmimport bisect import copy import sys from sortedcontainers import SortedList from coll…

Spring-Spring 之底层架构核心概念解析

BeanDefinition BeanDefinition表示Bean定义&#xff0c;BeanDefinition中存在很多属性用来描述一个Bean的特点。比如&#xff1a; class&#xff0c;表示Bean类型scope&#xff0c;表示Bean作用域&#xff0c;单例或原型等lazyInit&#xff1a;表示Bean是否是懒加载initMeth…

书接上回,如何用 LlamaIndex 搭建聊天机器人?

LlamaIndex 是领先的开源数据检索框架&#xff0c;能够在各种应用中发挥优势&#xff0c;其中一个典型的应用就是在企业内部搭建聊天机器人。 对于企业而言&#xff0c;随着文档数量不断增多&#xff0c;文档管理会变得愈发困难。因此&#xff0c;许多企业会基于内部知识库搭建…

视频增强和修复工具 Topaz Video AI mac中文版功能

Topaz Video AI mac是一款使用人工智能技术对视频进行增强和修复的软件。它可以自动降噪、去除锐化、减少压缩失真、提高清晰度等等。Topaz Video AI可以处理各种类型的视频&#xff0c;包括低分辨率视频、老旧影片、手机录制的视频等。 使用Topaz Video AI非常简单&#xff0c…

动态创建链表

动态创建链表的好处 相比于之前链表的几种功能介绍&#xff0c;都是在设定好的链表基础之上进行插入、删除等&#xff0c;那么如果我们要创建链表元素很多&#xff0c;就得去定义很多个元素结构体&#xff0c;非常不方便&#xff0c;这个时候应该用到动态创建链表。 动态创建…

MySQL在CentOS7环境下的安装

自己由于换了新的服务器&#xff0c;所以打算顺手编写此篇文章记录下来整个环境的重新安装过程 注意&#xff1a;切换为root身份进行操作 -->指令 su root 1、如果存在老安装包&#xff0c;将其卸载 这里我们使用管道grep进行过滤&#xff0c;查看是否之前已经安装过安装包…

【电路笔记】-相量图和相量代数

相量图和相量代数 文章目录 相量图和相量代数1、概述2、相量图3、相量代数3.1 加减3.2 差异化与整合 4、总结 1、概述 交流电信号可以用三种不同的方法来表示&#xff0c;以便表征和实现代数运算。 前面的文章中已经介绍了两种方法&#xff0c;本文稍后将介绍一种新的图形方法…

STM32F103C8T6第一天:认识STM32 标准库与HAL库 GPIO口 推挽输出与开漏输出

1. 课程概述&#xff08;297.1&#xff09; 课程要求&#xff1a;C语言熟练&#xff0c;提前学完 C51 2. 开发软件Keil5的安装&#xff08;298.2&#xff09; 开发环境的安装 编程语言&#xff1a;C语言需要安装的软件有两个&#xff1a;Keil5 和 STM32CubeMX Keil5 的安装…

使用pinia报错:setriderList()not a function

setriderList是我定义的事件&#xff0c;引用没有问题&#xff0c;但是就是请求不到&#xff0c;刷新就没有了&#xff0c;但是一会又开始报错了&#xff0c;进行排查吧 1&#xff1a;首先&#xff0c;需要确认报错信息是这样的&#xff1a; setriderList() not a function …

rwkv模型lora微调之accelerate和deepspeed训练加速

目录 一、rwkv模型简介 二、lora原理简介 三、rwkv-lora微调 1、数据整理 2、环境搭建 a、Dockerfile编写 b、制造镜像 c、容器启动 3、训练代码修改 四、模型推理 1、模型推理 2、lora权重合并 3、推理web服务 五、总结 由于业务采用的ChatGLM模型推理成本太大了…