上一篇:使用express搭建服务器获取MySQL数据库数据

一、完善获取数据库数据的写法

async+await版本

const express = require('express')
const db = require('./db/nodejs-orm/index.js')const app = express()app.get("/get_data", (req, res) => {// 查询数据库,返回到浏览器// 创建模型,需要操作哪个数据表(async function get_data() {let Stuinfo = db.model("stuinfo")let result = await new Promise((resolve, reject)=> {Stuinfo.find((err, data) => {if(err){reject(err)}resolve(data)})})res.send(result)      })()
})app.listen(3000, () => {console.log("服务器已经启动,端口为:3000")
})

带捕获异常的版本:

const express = require('express')
const db = require('./db/nodejs-orm/index.js')const app = express()app.get("/get_data", (req, res) => {// 查询数据库,返回到浏览器// 创建模型,需要操作哪个数据表(async function get_data() {let Stuinfo = db.model("stuinfo")let resulttry {result = await new Promise((resolve, reject)=> {Stuinfo.find((err, data) => {if(err){reject(err)}resolve(data)})})} catch (error) {console.log(error)res.send({errMsg:"数据库查询出错"})return;}    res.send(result)      })()
})app.listen(3000, () => {console.log("服务器已经启动,端口为:3000")
})

二、封装handleDB

handle.js:

const db = require('./nodejs-orm/index.js')// res:请求对象
// tableName:需要进行查询操作的表名
// methodName:进行哪种操作(增删改查)
// errMsg:如果数据库操作出错,自定义返回什么样的错误信息
// n1:字符串或字典或列表
// n2:字符串或字典或列表
async function handleDB(res, tableName, methodName, errMsg, n1, n2) {// console.log('handleDB方法执行')let Model = db.model(tableName)let resulttry {result = await new Promise((resolve, reject) => {// Model.find("",(err, data) => {// Model["find"]("",(err, data) => {if(!n1) {// 没有传递n1,即一个参数都没有传Model[methodName]((err, data) => {if (err) {reject(err)}resolve(data)})return;}// 程序能够执行到这里,说明传递了n1参数if(!n2) {// 只传递了n1参数,没有传递n2参数Model[methodName](n1,(err, data) => {if (err) {reject(err)}resolve(data)})return;}// 程序能够执行到这里,说明传递了n1,n2参数Model[methodName](n1,n2,(err, data) => {if (err) {reject(err)}resolve(data)})})} catch (error) {console.log(error)res.send({ errMsg: errMsg})return;}return result
}module.exports = handleDB

在项目中使用:

const express = require('express')
const handleDB = require('./db/handleDB.js')const app = express()app.get("/get_data", (req, res) => {// 查询数据库,返回到浏览器// 需要操作哪个数据表// 什么操作: 增删改查这些方法名(async function get_data() {let result = await handleDB(res, "stuinfo", "update", "数据修改错误", "age= 22",{sex: '未知'})res.send(result)      })()
})app.listen(3000, () => {console.log("服务器已经启动,端口为:3000")
})

完善获取数据库数据的写法相关推荐

  1. 【中级】 微信小程序 - 腾讯云 - wafer2 - PHP - 实战 - 后台 - 数据库的访问 - 01 - 通过wx.request或者qcloud.request来获取数据库数据

    前言 本例子,通过wx.request来获取数据库数据. 1 构建测试数据库 构建如下数据库,数据库名称user01.数据库表db_user.数据库里面输入了几个数据,然后,我们通过 wx.reque ...

  2. 微信小程序——从后台获取数据库数据并在前台显示(前端+后端+数据库)

    因为人工测试的时候需要统计数据都在纸上,统计起来很麻烦.所以我想做个小程序来辅助我测试,但我之前没学过小程序,所以就一点一点搞吧.今天这篇主要讲从后台获取数据库数据并在前台显示(类似背单词小程序的点击 ...

  3. 解决微信小程序云开发模式无法获取数据库数据问题

    解决微信小程序云开发模式无法获取数据库数据问题 问题: 在数据库有两条数据,获取数据时输出窗口没有任何反应 错误原因: 检查数据库名字是否对应 检查你是否有多个云开发环境 如果有多个云开发环境,就需要 ...

  4. vue读取mysql数据_vue.js获取数据库数据实例代码

    vue.js动态获取数据库数据 (通过vue.cli和webpack搭建的环境) 1.首先我先在创建一个静态的data.json文件,在static下创建json文件夹,(webpack环境下,静态的 ...

  5. vue.js获取数据库数据

    vue.js动态获取数据库数据 (通过vue.cli和webpack搭建的环境) 1.首先我先在创建一个静态的data.json文件,在static下创建json文件夹,(webpack环境下,静态的 ...

  6. SQL server获取数据库数据

    SQL server获取数据库数据 两表对比,查询A表中缺少的字段 例如 获取数据库指定表中的列 例如 获取某个存储过程的参数 两表对比,查询A表中缺少的字段 select a.name as nam ...

  7. C#后台获取数据库数据--ADO.NET

    关于获取数据库中的数据到后台,可分为4个步骤:1.获取连接数据库的字符串:2.创建SqlConnection对象用于打开数据库:3.创建SqlCommand对象用于执行操作,设置它的一系列属性即可:4 ...

  8. typescript获取数据库数据_肿瘤药敏多组学数据库(GDSC)的数据介绍和获取

    在第一期的GDSC数据总览中,我们根据数据库的模块进行总体的介绍.今天我们再深入了解GDSC所包含的数据及其获取的方法,也就是GDSC的数据下载模块. GDSC数据下载的模块,分为4个模块,分别是AN ...

  9. 转jmeter 性能测试 JDBC Request (查询数据库获取数据库数据) 的使用

    JDBC Request 这个Sampler可以向数据库发送一个jdbc请求(sql语句),并获取返回的数据库数据进行操作.它经常需要和JDBC Connection Configuration配置原 ...

最新文章

  1. 硬盘温度70度正常吗_打破传统固态硬盘的速度壁垒!XPG S50 PCIE 4.0评测
  2. 流水调度问题c语言,基于遗传算法的流水车间调度问题汇总.doc
  3. SSM框架前台传中文到后台乱码问题的解决办法
  4. Apache工作模式详解
  5. oracle count over partition by,over (Partition by...) of oracle
  6. SQL Server插入geography、geometry和c_hierarchyid类型数据
  7. RedHat Linux下获取snmp信息不全的解决办法
  8. node.js超过php,在nodejs中如何解决超出最大的调用栈错误
  9. 电脑重装系统Win11时间同步失败怎么办
  10. SqlServer中Group By高级使用--Inner Join分组统计
  11. 【AtCoder】ARC065
  12. Ruckus 7372 Multimedia Hotzone Wireless AP 配置
  13. Gravity:环形二维码扫描识别传感器详细介绍和工作原理
  14. Beaglebone Black - 控制 BBB 板上的 LED 灯
  15. 了解ZigBee以及硬件环境
  16. 【解决方案】“博物馆热”背后,如何建设安防视频监控体系保障文物安全?
  17. hiveSQL的小数取整
  18. 金蝶java笔试_金蝶面试题
  19. 基于stm32的两轮自平衡小车1(模块选型篇)
  20. 远程桌面控制公司内网电脑修改PPT

热门文章

  1. 计算机风险评估管理程序,第5章 信息安全风险评估实施流程
  2. php控制器教程,laravel基础教程 -- 控制器
  3. python3.7知识点汇总
  4. ftp改为sftp_浅谈 FTP、FTPS 与 SFTP
  5. 制作已编译的html帮助文件
  6. sublime中编译的sass如何改变css输出风格?【这里有答案】
  7. Spring AOP 五大通知类型
  8. 认识星座、八大行星的观察
  9. 常见的getchar 与EOF的问题
  10. [hdu5372 Segment Game]树状数组