(Node+Express+Vue) 操作数据库

最近在用node整项目,下面来分享一下如何从数据库读取数据列表

// 引入公共方法
const Common = require ('./common');
// 引入常量
const Constant = require ('../constant/constant');

// 配置对象
let exportObj = {
  list
};
// 导出对象
module.exports = exportObj;

// 获取数据列表
function list (req, res) {
  // 定义一个返回对象
  const resObj = Common.clone (Constant.DEFAULT_SUCCESS);
  // 定义一个async任务
  let tasks = {
    // 校验参数方法
    checkParams: (cb) => {
      // TODO: 校验参数
      Common.checkParams (req.query, ['page', 'rows'], cb);
    },
    query: ['checkParams', (results, cb) => {
      // 设置分页信息
      let offset = req.query.rows * (req.query.page - 1) || 0;
      let limit = parseInt (req.query.rows) || 20;
      //TODO: 存放查询条件信息
      let whereCondition = {};
      Model
        .findAndCountAll ({
          where: whereCondition,
          offset: offset,
          limit: limit,
          order: [['time', 'DESC']],
        })
        .then (function (result) {
          let list = [];
          result.rows.forEach ((v, i) => {
            let obj = {
              //TODO: 封装返回数据信息
              id: v.id
            };
            list.push (obj);
          });
          //TODO: 封装列表数据
          resObj.data = {
            list,
            count: result.count
          };
          //TODO: 继续后续操作
          cb (null);
        })
        .catch (function (err) {
          //TODO: 错误处理
          console.log (err);
          // 传递错误信息到async最终方法
          cb (Constant.DEFAULT_ERROR);
        });

    }]
  };
  // 执行公共方法中的autoFn方法,返回数据
  Common.autoFn (tasks, res, resObj)

}


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

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

相关文章

国内IP节点更换攻略,一键解决烦恼

在如今的互联网时代,网络已经成为人们生活中不可或缺的一部分。而对于许多网民来说,网络速度的快慢直接关系到他们的上网体验。在国内,很多用户常常遇到一个问题,那就是网络速度不稳定。有时候可以流畅地上网,有时候却…

【LeetCode热题100】108. 将有序数组转换为二叉搜索树(二叉树)

一.题目要求 给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 平衡二叉搜索树。 二.题目难度 简单 三.输入样例 示例 1: 输入:nums [-10,-3,0,5,9] 输出:[0,-3,9,-10,null,5] 解释&#x…

React Native 应用打包上架

引言 在将React Native应用上架至App Store时,除了通常的上架流程外,还需考虑一些额外的优化策略。本文将介绍如何通过配置App Transport Security、Release Scheme和启动屏优化技巧来提升React Native应用的上架质量和用户体验。 配置 App Transport…

【目标检测】西红柿成熟度数据集三类标签原始数据集280张

文末有分享链接 标签名称names: - unripe - semi-ripe - fully-ripe D00399-西红柿成熟度数据集三类标签原始数据集280张

Spring文件配置以及获取

前言 我们都知道很多应用都是有配置文件的,可以对应用的一些参数进行配置,如conf... 本篇我们讲解关于Spring的配置文件以及程序怎么获取其中写入的参数 Spring中的配置文件主要有三种 还有yml和ymal文件 下面我们将介绍关于常用的两种 preoperties 和 yml文件的格式和读取…

【SQL】1667. 修复表中的名字(UPPER()、LOWER()、SUBSTRING()、CONCAT())

前述 SQL中字符串截取函数(SUBSTRING) SQL 字母大小写转换函数UPPER()、UCASE()、LOWER()和LCASE() 题目描述 leetcode题目:1667. 修复表中的名字 Code select user_id, concat(upper(substring(name, 1, 1)),lower(substring(name, 2)) ) as name from Users o…

5G双域专网+零信任的神奇魔法

引言 在当今数字化程度不断提升的社会中,信息安全已经成为企业和组织发展的关键要素之一。特别是在网络连接日益广泛的环境下,对于数据的保护和隐私的维护变得尤为重要。随着5G技术的飞速发展,5G双域专网为企业提供了更快速、更可靠的连接&a…

对标开源3D建模软件blender,基于web提供元宇宙3D建模能力的dtns.network德塔世界是否更胜一筹?

对标开源3D建模软件blender,基于web提供元宇宙3D建模能力的dtns.network德塔世界是否更胜一筹? blender是一款优秀的3D建模开源软件,拥有免费开源、功能强大、渲染速度优秀的优点。而开源的dtns.network德塔世界,亦是专业级的元宇…

cinder学习小结

1 官方文档 翻译官方文档学习 链接Cinder Administration — cinder 22.1.0.dev97 documentation (openstack.org) 1.1 镜像压缩加速 在cinder.conf配allow_compression_on_image_upload True可打开开关 compression_format xxx可设置镜像压缩格式,可为gzip 1.2 …

【MATLAB源码-第11期】基于matlab的2FSK的误码率BER仿真以及原信号调制信号解调信号波形展示。

操作环境: MATLAB 2022a 1、算法描述 2FSK(Frequency Shift Keying)为二进制数字频率调制(二进制频移键控),用载波的频率来传送数字信息,即用所传送的数字信息控制载波的频率。2FSK信号便是符…

vulnhub-----pWnOS1.0靶机

文章目录 1.信息收集2.漏洞测试3.爆破hash4.提权 首先拿到一台靶机,就需要知道靶机的各种信息(IP地址,开放端口,有哪些目录,什么框架,cms是什么,网页有什么常见的漏洞,如sql注入&…

如何添加随机种子保证代码每次复现的一致性?

如何添加随机种子保证代码每次复现的一致性? 在main()程序中首先设定随机种子: def set_seed(seed42):os.environ[PYTHONHASHSEED] str(seed)random.seed(seed)np.random.seed(seed)torch.manual_seed(seed)torch.cuda.manual_seed(seed)torch.backends…

【文本挖掘与文本分析】上机实验三

实验目的和要求 实验 了解sklearn,gensim可视化主题的基本操作;采集四大名著之《红楼梦》进行主题分析对《红楼梦》的主题进行可视化 或采集二十大报告进行主题分析;对《二十大报告》的主题进行可视化 数据来源 《红楼梦》小说《二十大报告》 采集红…

ubuntu下安装minconda

1.搜索清华源 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 2.搜索conda 3.选一个合适自己的下载到本地 4.将下载的文件传入到ubuntu中 bash Miniconda3-py311_23.11.0-1-Linux-x86_64.sh 安装 5.source ~/.bashrc 激活即可(必要步骤)

2024年 导出环境依赖requirements.txt

2024年 导出环境依赖 一、前言 有时候需要导出环境依赖,遂记录一下这个短短的步骤 二、具体步骤 1、使用pip进行安装和管理环境 安装导出依赖的库pipreqs pip install pipreqs将环境依赖项导出到当前目录的requirements.txt文件,编码格式用utf-8 …

第15篇:2位数值比较器

Q:本篇我们将实现2位二进制数值比较器逻辑电路,即对2个2位二进制数大小进行比较。 A:数值比较器的基本原理:先对两个数的高位进行比较,若高位相等,再比较低位,低位的比较结果决定两个数的大小。…

自增不再简单:深入探索MySQL自增ID的持久化之道

概述 MySQL中的自增特性估计大家或多或少都是用过。一张表中只能由一个自增字段,通常我们会把它设置为主键,但是随着大家系统越来越分布式,为了一些性能和可扩展性问题,大家目前选择更多的都是分布式ID(雪花算法、UUI…

自觉性的力量:在无人监督中追求卓越

一、引言 自觉性,这个看似简单的词汇,却蕴含着巨大的力量。它如同内心的指南针,指引我们在无人监督的情况下,依然能够坚守原则,保持积极向上的态度。在快节奏的现代生活中,自觉性更是成为我们应对挑战、实现…

不可变和可变字符序列使用陷阱

String 使用的陷阱: String 一经初始化后,就不会再改变其内容了。对 String 字符串的操作实际上是对其副本(原始拷贝)的操作,原来的字符串一点都没有改变。比如: String s "a"; 创建了一个字符…

【创建QT项目】使用向导创建

打开Qt Creator 界面选择 New Project或者选择菜单栏 【文件】-【新建文件或项目】菜单项 弹出New Project对话框,选择Qt Widgets Application, 选择【Choose】按钮,弹出如下对话框 设置项目名称和路径,按照向导进行下一步&#x…
最新文章