在nodejs项目中封转mysql2的数据连接

2024-03-21 19:52

本文主要是介绍在nodejs项目中封转mysql2的数据连接,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

概要-封装node链接mysql的数据库代码(并不是特别优化,自己感觉还不错)

今天中午有点时间刚好分享之前使用nodejs连接数据库的时候封装了一个数据库连接的代码.

在自己接活的时候,如果使用Java做后端服务,我个人觉得是一个比较费时间的事情,所以前端朋友可以使用node作为服务器,这样不就更好. 

整体架构流程

基于nodejs + express + mysql的架构

数据库的连接封装

如果是自己使用node开发接口,那就需要链接mysql, 既然要连接数据库存储数据,那就说明不是只用一次就完事了,需要频繁调用,那如何封装一个mysql了.

代码如下: 

第一步: 

    自己的电脑需要安装mysql ,安装步骤我就不提供了,有现成的连接教程

   mysql官网: MySQL

第二步: 

    安装nodejs  ,nodejs的安装步骤-请看官网: Node.js 中文网

第三步: 

   开始搭建项目:

   1)  在桌面新建一个文件夹,中英文(建议最好是英文)都可以: 使用命令进入当前文件夹,
输入命令: npm init   --yes
 2)   然后再当前文件夹中新建 app.js  文件

   

 3) 开始下载包 :express代表框架 , mysql代表数据库

npm  i  express  mysql  -S

4)  在app.js中编写代码

   这个是核心代码

// 引入框架
const express = require("express")// 新建app对象
let app = new express()// 监听 
app.listen(3000, () => {console.log("服务器开启:http://127.0.0.1:3000");
})
  5) 开始封装mysql的代码

   我个人喜欢将封装的东西都放到utils中, 所以需要再app.js同级新建一个文件夹utils ,在utils中在新建一个db.js

    node ---> utils ---> db.js

 6) 代码如下: 

  db.js : 

  

// 封装数据库
// 引入mysql
const mysql = require("mysql")// 封转的方法
let myquery = function (...aa) {//  不管你的参数是几个,我的第一个参数都是sqllet sql = aa[0]let arr = []let fn;//方法 function -->fnif (aa.length > 2) {//三个参数arr = aa[1]fn = aa[2]} else {fn = aa[1]}// 以上的参数已经准备好了// 创建连接let conn = mysql.createConnection({host: "127.0.0.1",user: "root",password: "数据库密码",port: 3306,database: "数据库名称"})conn.connect();//执行// 命令if (arr.length > 0) {conn.query(sql, arr, (err, result) => {fn(err, result)})} else {conn.query(sql, (err, result) => {fn(err, result)})}// 关闭conn.end()
}// 向外暴露一个方法体
module.exports = {myquery
}
  7)  接口调用

   在app.js中编写一个简单的接口,例如查询当前用户的列表信息

  

// 引入封装的db.js
const db = require("./utils/db.js");
//创建路由
const router = express.Router();
router.get("/findUserList", (req, res) => {let sql = "select * from user";db.myquery(sql, [], (err, result) => {if (err) {console.log(err);res.send({code: 401,message: "查询失败",});return false;}res.send({code: 200,message: "查询成功!",data: result,});});
});

   

小结

这个封装比较简单,如果想真正的开发项目,其实用koa2比较合适, 今天的分享就到这里,有问题可以留言.

这篇关于在nodejs项目中封转mysql2的数据连接的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/833742

相关文章

批量导入txt数据到的redis过程

《批量导入txt数据到的redis过程》用户通过将Redis命令逐行写入txt文件,利用管道模式运行客户端,成功执行批量删除以Product*匹配的Key操作,提高了数据清理效率... 目录批量导入txt数据到Redisjs把redis命令按一条 一行写到txt中管道命令运行redis客户端成功了批量删除k

精选20个好玩又实用的的Python实战项目(有图文代码)

《精选20个好玩又实用的的Python实战项目(有图文代码)》文章介绍了20个实用Python项目,涵盖游戏开发、工具应用、图像处理、机器学习等,使用Tkinter、PIL、OpenCV、Kivy等库... 目录① 猜字游戏② 闹钟③ 骰子模拟器④ 二维码⑤ 语言检测⑥ 加密和解密⑦ URL缩短⑧ 音乐播放

Springboot项目启动失败提示找不到dao类的解决

《Springboot项目启动失败提示找不到dao类的解决》SpringBoot启动失败,因ProductServiceImpl未正确注入ProductDao,原因:Dao未注册为Bean,解决:在启... 目录错误描述原因解决方法总结***************************APPLICA编

Redis客户端连接机制的实现方案

《Redis客户端连接机制的实现方案》本文主要介绍了Redis客户端连接机制的实现方案,包括事件驱动模型、非阻塞I/O处理、连接池应用及配置优化,具有一定的参考价值,感兴趣的可以了解一下... 目录1. Redis连接模型概述2. 连接建立过程详解2.1 连php接初始化流程2.2 关键配置参数3. 最大连

SpringBoot多环境配置数据读取方式

《SpringBoot多环境配置数据读取方式》SpringBoot通过环境隔离机制,支持properties/yaml/yml多格式配置,结合@Value、Environment和@Configura... 目录一、多环境配置的核心思路二、3种配置文件格式详解2.1 properties格式(传统格式)1.

解决pandas无法读取csv文件数据的问题

《解决pandas无法读取csv文件数据的问题》本文讲述作者用Pandas读取CSV文件时因参数设置不当导致数据错位,通过调整delimiter和on_bad_lines参数最终解决问题,并强调正确参... 目录一、前言二、问题复现1. 问题2. 通过 on_bad_lines=‘warn’ 跳过异常数据3

C#监听txt文档获取新数据方式

《C#监听txt文档获取新数据方式》文章介绍通过监听txt文件获取最新数据,并实现开机自启动、禁用窗口关闭按钮、阻止Ctrl+C中断及防止程序退出等功能,代码整合于主函数中,供参考学习... 目录前言一、监听txt文档增加数据二、其他功能1. 设置开机自启动2. 禁止控制台窗口关闭按钮3. 阻止Ctrl +

java如何实现高并发场景下三级缓存的数据一致性

《java如何实现高并发场景下三级缓存的数据一致性》这篇文章主要为大家详细介绍了java如何实现高并发场景下三级缓存的数据一致性,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 下面代码是一个使用Java和Redisson实现的三级缓存服务,主要功能包括:1.缓存结构:本地缓存:使

在IntelliJ IDEA中高效运行与调试Spring Boot项目的实战步骤

《在IntelliJIDEA中高效运行与调试SpringBoot项目的实战步骤》本章详解SpringBoot项目导入IntelliJIDEA的流程,教授运行与调试技巧,包括断点设置与变量查看,奠定... 目录引言:为良驹配上好鞍一、为何选择IntelliJ IDEA?二、实战:导入并运行你的第一个项目步骤1

在MySQL中实现冷热数据分离的方法及使用场景底层原理解析

《在MySQL中实现冷热数据分离的方法及使用场景底层原理解析》MySQL冷热数据分离通过分表/分区策略、数据归档和索引优化,将频繁访问的热数据与冷数据分开存储,提升查询效率并降低存储成本,适用于高并发... 目录实现冷热数据分离1. 分表策略2. 使用分区表3. 数据归档与迁移在mysql中实现冷热数据分