在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

相关文章

SpringBoot分段处理List集合多线程批量插入数据方式

《SpringBoot分段处理List集合多线程批量插入数据方式》文章介绍如何处理大数据量List批量插入数据库的优化方案:通过拆分List并分配独立线程处理,结合Spring线程池与异步方法提升效率... 目录项目场景解决方案1.实体类2.Mapper3.spring容器注入线程池bejsan对象4.创建

PHP轻松处理千万行数据的方法详解

《PHP轻松处理千万行数据的方法详解》说到处理大数据集,PHP通常不是第一个想到的语言,但如果你曾经需要处理数百万行数据而不让服务器崩溃或内存耗尽,你就会知道PHP用对了工具有多强大,下面小编就... 目录问题的本质php 中的数据流处理:为什么必不可少生成器:内存高效的迭代方式流量控制:避免系统过载一次性

基于 Cursor 开发 Spring Boot 项目详细攻略

《基于Cursor开发SpringBoot项目详细攻略》Cursor是集成GPT4、Claude3.5等LLM的VSCode类AI编程工具,支持SpringBoot项目开发全流程,涵盖环境配... 目录cursor是什么?基于 Cursor 开发 Spring Boot 项目完整指南1. 环境准备2. 创建

C#实现千万数据秒级导入的代码

《C#实现千万数据秒级导入的代码》在实际开发中excel导入很常见,现代社会中很容易遇到大数据处理业务,所以本文我就给大家分享一下千万数据秒级导入怎么实现,文中有详细的代码示例供大家参考,需要的朋友可... 目录前言一、数据存储二、处理逻辑优化前代码处理逻辑优化后的代码总结前言在实际开发中excel导入很

java.sql.SQLTransientConnectionException连接超时异常原因及解决方案

《java.sql.SQLTransientConnectionException连接超时异常原因及解决方案》:本文主要介绍java.sql.SQLTransientConnectionExcep... 目录一、引言二、异常信息分析三、可能的原因3.1 连接池配置不合理3.2 数据库负载过高3.3 连接泄漏

MyBatis-plus处理存储json数据过程

《MyBatis-plus处理存储json数据过程》文章介绍MyBatis-Plus3.4.21处理对象与集合的差异:对象可用内置Handler配合autoResultMap,集合需自定义处理器继承F... 目录1、如果是对象2、如果需要转换的是List集合总结对象和集合分两种情况处理,目前我用的MP的版本

Three.js构建一个 3D 商品展示空间完整实战项目

《Three.js构建一个3D商品展示空间完整实战项目》Three.js是一个强大的JavaScript库,专用于在Web浏览器中创建3D图形,:本文主要介绍Three.js构建一个3D商品展... 目录引言项目核心技术1. 项目架构与资源组织2. 多模型切换、交互热点绑定3. 移动端适配与帧率优化4. 可

sky-take-out项目中Redis的使用示例详解

《sky-take-out项目中Redis的使用示例详解》SpringCache是Spring的缓存抽象层,通过注解简化缓存管理,支持Redis等提供者,适用于方法结果缓存、更新和删除操作,但无法实现... 目录Spring Cache主要特性核心注解1.@Cacheable2.@CachePut3.@Ca

GSON框架下将百度天气JSON数据转JavaBean

《GSON框架下将百度天气JSON数据转JavaBean》这篇文章主要为大家详细介绍了如何在GSON框架下实现将百度天气JSON数据转JavaBean,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录前言一、百度天气jsON1、请求参数2、返回参数3、属性映射二、GSON属性映射实战1、类对象映

C# LiteDB处理时间序列数据的高性能解决方案

《C#LiteDB处理时间序列数据的高性能解决方案》LiteDB作为.NET生态下的轻量级嵌入式NoSQL数据库,一直是时间序列处理的优选方案,本文将为大家大家简单介绍一下LiteDB处理时间序列数... 目录为什么选择LiteDB处理时间序列数据第一章:LiteDB时间序列数据模型设计1.1 核心设计原则