node的Mysql模块

STM32测测速---编码电机读取速度的计算 速度计算:轮胎每转一圈的脉冲数取决于编码器的分辨率,可由下面公式进行计算:PPR是电机的线数最后可以计算轮胎每转一圈的脉冲数为:轮胎每转一圈的脉冲数 = 9.6 × 11 × 4 = 422.4最后的速度公式简化为:速度 = (0.01 秒内产生的脉冲数 ∗ 0.055 ∗ π )/(0.01 ∗422.4​。 阅读详情

mysql

一、创建MySQL模块

1、介绍

是Node.js下专门用于操作mysql数据库的模块

2、下载安装

npm install mysql

3、连接数据库

mysql.exe -h127.0.0.1 -P3306

-uroot -p

mysql -uroot

mysql -uroot<拖拽SQL脚本文件

//引入MySQL模块
const mysql=require('mysql');
//创建连接对象
const c=mysql.createConnection({
    host: '127.0.0.1',
    port: '3306',
    user: 'root',
    password: '',
    database: 'tedu'
});

//测试连接
c.connect();

4、reatePool( ) 创建连接池

//引入mysql模块
const mysql=require('mysql');
//创建连接池对象
const pool=mysql.createPool({
  host:'127.0.0.1',
  port:'3306',
  user:'root',
  password:'',
  database:'tedu',
  connectionLimit:15 //连接池的大小,默认也是15
});

5、pool.query()

(SQL命令, 数组, 回调函数 ) 执行SQL命令,数组保存用来过滤的数据,最后再去替换占位符,通过回调函数获取结果

//引入mysql模块
const mysql=require('mysql');
//创建连接池对象
const pool=mysql.createPool({
  host:'127.0.0.1',
  port:'3306',
  user:'root',
  password:'',
  database:'tedu',
  connectionLimit:15 //连接池的大小,默认也是15
});

//比如查到一个数据,浏览器发请求给服务器端,服务器去连接数据库服务器查找,找到了就响应给浏览器
//query是异步的,得通过回调函数获取结果
pool.query('select * from emp',(err,result)=>{
    if(err) throw err;
    console.log(result);
})

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MUb5SN15-1635344598544)(C:\Users\23204\AppData\Roaming\Typora\typora-user-images\image-20211002174842723.png)]

6、SQL注入

select * from emp where 1; //1是true,表示显示所有的数据

select * from emp where ename=“tao” or “1”;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8yT7fsSf-1635344598547)(C:\Users\23204\AppData\Roaming\Typora\typora-user-images\image-20211002181138451.png)]

占位符(?):先将用户提供的值进行过滤,过滤完再替换位置。

select* from emp where sex=? and salary>? , [0, 8000]

//引入mysql模块
const mysql=require('mysql');
//创建连接池对象
const pool=mysql.createPool({
  host:'127.0.0.1',
  port:'3306',
  user:'root',
  password:'',
  database:'tedu',
  connectionLimit:15 //连接池的大小,默认也是15
});

//比如查到一个数据,浏览器发请求给服务器端,服务器去连接数据库服务器查找,找到了就响应给浏览器
//query是异步的,得通过回调函数获取结果
//假设查找到一个员工的姓名,把员工姓名保存到变量
var user='tao';
//把user变量拼接到sql命令去
//执行SQL命令,查询出该员工的数据
//select*from emp where ename='tao';
//第一种方法:'select*from emp where ename="'+ ['tao'] +'"'
// pool.query('select*from emp where ename="'+ user +'"',(err,result)=>{
//     if(err) throw err;
//     console.log(result);
// })
//第二种方法:占位符(?):先将用户提供的值进行过滤,过滤完再替换位置。
pool.query('select*from emp where ename=?',[user],(err,result)=>{
    if(err) throw err;
    console.log(result);
})

/*
//insert into emp values(null,...);
pool.query('insert into emp values(null,?,?,?,?,?)',[user.ename,user.sex,user.birthday,user.salary,user.deptId],(err,result)=>{
  if(err) throw err;
  console.log(result);
});
*/

二、后端接口

接口:后端提供的动态资源(注册、登录、数据操作…)

RESTful接口:是一种接口风格

1、URL

员工资源

http://127.0.0.1:8080/v1/emps 多个资源

​ v1:版本号 emps:资源名称(复数形式)

http://127.0.0.1:8080/v1/emps/3 单个资源

​ 3: 编号

用户资源

http://127.0.0.1:8080/v1/users/login 对资源的操作方式

http://127.0.0.1:8080/v1/users/reg

2、请求的方法

对资源的操作方式

(1) get 获取资源
//引入express模块
const express=require('express');
//引入mysql模块
const mysql=require('mysql');
//创建web服务器
const app=express();
//创建数据库连接池
const pool=mysql.createPool({
    host: '127.0.0.1',
    port: '3306',
    user: 'root',
    password: '',
    database: 'tedu',
    connectionLimit:15 //连接池的大小,默认也是15
})
//设置端口
app.listen(8080,()=>{
    console.log('服务器创建成功');
})
//使用中间件将所有post请求的数据解析为对象
app.use(express.urlencoded({
    extended:false
}))
//查找员工路由(get /v1/emps/编号)
//这个路由就是一个接口
//产生了接口的地址:http://127.0.0.1:8080/v1/emps/3
//请求方法:get
app.get('/v1/emps/:eid',(req,res)=>{
    //获取路由传参的数据
    console.log(req.params);
    //执行sql命令,将对象插入到数据库tedu中
    pool.query('select*from emp where eid=?',[req.params.eid],(err,result)=>{
        if(err) throw err;
        console.log(result);
        //把查询到的数据响应到客户端
        //查询的结果是数组,如果是空数组说明该员工不存在
        if(result.length===0){
            res.send({code:201,msg:'员工不存在'});
        }else{
            res.send({code:200,msg:'查找成功',data:result});
        }
    })
})

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Vehg7RB1-1635344598549)(C:\Users\23204\AppData\Roaming\Typora\typora-user-images\image-20211003142256688.png)]

(2)post 新建资源(新产生数据)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vbQs5zNy-1635344598551)(C:\Users\23204\AppData\Roaming\Typora\typora-user-images\image-20211003134037281.png)]

//引入express模块
const express=require('express');
//引入mysql模块
const mysql=require('mysql');
//创建web服务器
const app=express();
//创建数据库连接池
const pool=mysql.createPool({
    host: '127.0.0.1',
    port: '3306',
    user: 'root',
    password: '',
    database: 'tedu',
    connectionLimit:15 //连接池的大小,默认也是15
})
//设置端口
app.listen(8080,()=>{
    console.log('服务器创建成功');
})
//使用中间件将所有post请求的数据解析为对象
app.use(express.urlencoded({
    extended:false
}))
//添加路由(post /v1/emps)
//这个路由就是一个接口
//产生了接口的地址:http://127.0.0.1:8080/v1/emps
//请求方法:post
app.post('/v1/emps',(req,res)=>{
    //解析为对象放到了body里面了
    console.log(req.body);
    //执行sql命令,将对象插入到数据库tedu中
    pool.query('insert into emp set ?',[req.body],(err,result)=>{
        if(err) throw err;
        console.log(result);
    //成功的结果是给前端看的,格式为json对象
    //res.json()和res.send()作用相同,都可以将对象转换为json
    res.send({
        code:200,
        msg:'员工添加成功'
    })
    })
})
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jMOBLVbR-1635344598553)(C:\Users\23204\AppData\Roaming\Typora\typora-user-images\image-20211003145259008.png)]
(3)delete 删除资源
//引入express模块
const express=require('express');
//引入mysql模块
const mysql=require('mysql');
//创建web服务器
const app=express();
//创建数据库连接池
const pool=mysql.createPool({
    host: '127.0.0.1',
    port: '3306',
    user: 'root',
    password: '',
    database: 'tedu',
    connectionLimit:15 //连接池的大小,默认也是15
})
//设置端口
app.listen(8080,()=>{
    console.log('服务器创建成功');
})
//使用中间件将所有post请求的数据解析为对象
app.use(express.urlencoded({
    extended:false
}))
//删除员工接口(delete /v1/emps/编号)
//这个路由就是一个接口
//产生了接口的地址:http://127.0.0.1:8080/v1/emps/3
//请求方法:delete
app.delete('/v1/emps/:eid',(req,res)=>{
    //获取路由传参的数据
    console.log(req.params);
    //执行sql命令,将对象插入到数据库tedu中
    pool.query('delete from emp where eid=?',[req.params.eid],(err,result)=>{
        if(err) throw err;
        console.log(result);
        //把查询到的数据响应到客户端
        //结果是对象,如果对象下的affectedRows值为0说明删除失败
        if(result.affectedRows===0){
            res.json({code:201,msg:'删除失败'});
        }else{ //删除成功
            //json和send一样,都可以响应json格式
            res.json({code:200,msg:'删除成功'});
        }
    })
})

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uFtMttNr-1635344598553)(C:\Users\23204\AppData\Roaming\Typora\typora-user-images\image-20211003153454519.png)]

(4)put 修改资源

3、过滤数据

针对于多个资源的操作

过滤第一页的前十条数据:

http://127.0.0.1:8080/v1/emps?pno=1&count=10

通过分页过滤数据 pno=1:当前页码 count=10:每页的数据量

过滤一组工资区间,工资6000到8000: http://127.0.0.1:8080/v1/emps?salary1=6000&salary2=8000

4、返回结果

格式为json,字符串形式的对象,属性名必须用双引号的形式,属性值如果是字符串必须用双引号, 包含状态码、消息、数据

例如:用户登录的返回结果: {“code”: 200, “msg”: “登录成功”}

例如:获取用户的列表:{“code”:200, “msg”:“获取成功”, “data”: […]}

案例:编写文件03_app.js,使用express创建web服务器,添加路由(post /v1/emps),用于插入一条员工数据,响应‘添加成功’。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5kDovp0D-1635344598554)(C:\Users\23204\AppData\Roaming\Typora\typora-user-images\image-20211003133736706.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vPOyatW3-1635344598555)(C:\Users\23204\AppData\Roaming\Typora\typora-user-images\image-20211003135456985.png)]

案例

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-t7n3Fot4-1635344598556)(C:\Users\23204\AppData\Roaming\Typora\typora-user-images\image-20211003160241749.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FaFXlUxV-1635344598557)(C:\Users\23204\AppData\Roaming\Typora\typora-user-images\image-20211003160200641.png)]

1、创建数据库

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gO2shmy0-1635344598558)(C:\Users\23204\AppData\Roaming\Typora\typora-user-images\image-20211003222352062.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jgQNd7W6-1635344598558)(C:\Users\23204\AppData\Roaming\Typora\typora-user-images\image-20211003222456585.png)]

2、在app.js下,创建WEB服务器,设置端口

3、在routes/user.js下,创建路由器对象,添加用户注册路由(post /reg),响应{code:200,msg:‘注册成功’},导出路由器对象

4、在app.js下引入用户路由器(./routes/user.js)并使用,添加前缀/v1/users

5、在pool.js中创建连接池对象并导出对象

6、在user.js中引入连接池模块(…/pool.js),执行SQL命令

pool.js

const mysql=require('mysql');
//创建连接池对象
const pool=mysql.createPool({
  host:'127.0.0.1',
  port:'3306',
  user:'root',
  password:'',
  database:'xz',
  connectionLimit:15
});
//导出连接池对象
module.exports=pool;

app.js

const express=require('express');
//引入用户路由器
const userRouter=require('./routes/user.js');
//console.log(userRouter);
//创建WEB服务器
const app=express();
//设置端口
app.listen(8080,()=>{
  console.log('服务器创建成功');
});
//使用中间件将所有post请求的数据解析为对象
app.use( express.urlencoded({
  extended:false
}) );
//使用路由器,添加前缀/v1/users
app.use('/v1/users',userRouter);

//使用错误处理中间件,拦截所有路由中抛出的错误
app.use( (err,req,res,next)=>{
  //err 得到的中间件传递过来的错误
  console.log(err);
  //设置http协议响应的状态码
  res.status(500).send({code:500,msg:'服务器端错误'});
} );

user.js

const express=require('express');
//引入连接池模块
const pool=require('../pool.js');
//console.log(pool);
//创建路由器对象
const r=express.Router();
//1.用户注册(post /reg)
//接口地址:http://127.0.0.1:8080/v1/users/reg
//请求方法:post
r.post('/reg',(req,res,next)=>{
  //1.1获取post传递的数据
  var obj=req.body;
  console.log(obj);
  //1.2验证数据是否为空
  if(!obj.uname){
    res.send({code:401,msg:'uname不能为空'});
	//阻止往后执行
	return;
  }
  if(!obj.upwd){
    res.send({code:402,msg:'upwd不能为空'});
	return;
  }
  if(!obj.email){
    res.send({code:403,msg:'email不能为空'});
	return;
  }
  if(!obj.phone){
    res.send({code:404,msg:'phone不能为空'});
	return;
  }
  //验证手机号码格式
  //如果不正确
  if( !/^1[3-9]\d{9}$/.test(obj.phone) ){
    res.send({code:405,msg:'手机号码格式错误'});
	return;
  }
  //执行SQL命令
  pool.query('insert into xz_user set ?',[obj],(err,result)=>{
    if(err){
	  //把错误抛给下一个中间件处理
	  next(err);
      //阻止往后执行
	  return;
	}
	console.log(result);
    res.send({code:200,msg:'注册成功'});
  });
});
//2.用户登录(post /login)
//接口地址:http://127.0.0.1:8080/v1/users/login
//请求方法:post
r.post('/login',(req,res,next)=>{
  //2.1获取post传递的数据
  var obj=req.body;
  console.log(obj);
  //2.2验证各项是否为空
  if(!obj.uname){
    res.send({code:401,msg:'uname不能为空'});
	return;
  }
  if(!obj.upwd){
    res.send({code:402,msg:'upwd不能为空'});
	return;
  }
  //2.3执行SQL命令
  pool.query('select * from xz_user where uname=? and upwd=?',[obj.uname,obj.upwd],(err,result)=>{
    if(err){
	  //如果有错误,抛给下一个错误处理中间件
	  next(err);
	  return;
	}
	console.log(result);
	//结果是数组,如果为空数组说明登录失败
	if(result.length===0){
	  res.send({code:201,msg:'登录失败'});
	}else{
	  res.send({code:200,msg:'登录成功'});
	}    
  });
});
//3.查找用户


//导出路由器对象
module.exports=r;
VS Code 配置 LaTeX 写作环境完全指南 本文详细介绍了如何在 VS Code 中配置 LaTeX 写作环境,涵盖了从安装必备组件到高级功能的全面指南。首先,用户需要安装 LaTeX 发行版(如 TeX Live 或 MiKTeX)和 VS Code 插件(如 LaTeX Workshop)。接着,通过修改 settings.json 和 keybindings.json 文件,用户可以自定义编译、查看快捷键等基础配置。文章还提供了高效写作技巧,如使用代码片段和多文件项目管理,并介绍了高级功能如反向同步、公式预览和参考文献管理。此外,针对常见问题( 阅读详情

相关推荐

MTK Tunning ISP 模块面试总结

ISP面试问答

m0_72053187的博客 4538

node.js——mysql模块

尽管现如今 NoSQL 渐行其道,越来越流行,但是 SQL 数据库依旧是绝大多数应用的选择。Node.js 丰富的生态系统中,有许多模块都是为 SQL 数据库设计开发的。通过 node-mysql,我们可以书写自己的 SQL 查询语句来操作数据库。

CarveStone的博客 1461

用STM32H7的FMC+AD7606搭建多通道数据采集系统:两种工作模式(查询与FIFO中断)的代码详解与性能对比

本文详细解析了基于STM32H7微控制器和AD7606 ADC芯片的多通道数据采集系统设计,重点对比了查询模式与FIFO中断模式的实现方法与性能差异。通过FMC总线实现高速并行数据采集,系统支持16bit同步采样,最高可达200Ksps/通道。文章提供了完整的代码实现和优化策略,帮助工程师在工业监测等实时性要求高的场景中构建可靠的数据采集方案。

weixin_30599769的博客 485

Node.js教程-mysql模块

在Node.js中,mysql模块是实现MySQL协议的JavaScript客户端工具。Node.js程序通过与MySQL建立链接,然后可对数据进行增删改查等操作。

旺仔的博客 2239

Silvaco Atlas从头开始(四)——定义材料参数和模型

这部分是关于定义材料参数和模型。

qsz1425AWD2121的博客 4650

计算机实战分享3:森林火灾预测分析可视化机器学习预测-完整数据代码-可直接运行

计算机实战分享3:森林火灾预测分析可视化机器学习预测-完整数据代码-可直接运行

604

NodeJS 与第三方模块 mysql(基本操作)

在 NodeJS 对数据库进行查询等操作时 NodeJS 将正式向 MySQL 发起连接,所以通过此法可以检查数据库是否可以正常连接。在编写后端代码时,一定要注意数据与代码分离的原则。在 mysql 模块中,你可以使用 ? 来代替某个数据。在使用占位符代替数据后,请不要忘记向 mysql 模块提供需要被替代的数据。

两个月亮 1600

【C#学习记录】如何让界面控件实现自适应布局(Winform)

小伙伴们大家好,我是雷工!在软件界面设计中,客户常常要求设计的界面可以随意缩放,缩放过程中,界面中的按钮等控件也会随着窗体变大缩小自动调整显示位置和尺寸大小。在C#的Winform窗体中如何实现这个效果,下面我们一起学习下。

做有价值的事,积累有价值的笔记! 1万+

Mysql的使用(node.js为例)

【代码】Mysql的使用(node.js为例)

weixin_64463374的博客 372

[RK3568 Android11] 开发之默认授予系统预置的APP权限

目录 一、系统预置的APP权限 二、默认授予系统预置的APP权限 一、系统预置的APP权限 1、在打开系统预置的APP时,都会弹窗提示,并且需要人工确定授予权限; 2、有些客户对定制有需求,需要系统预置的APP自动默认授予权限; 二、默认授予系统预置的APP权限 注意此方法只对系统预置的APP起效果,后期手动安装的APP无效; 修改文件: frameworks/base/services/core/java/com/android/server/pm/per...

~未来可期~ 5059

梯度提升决策树GBDT原理与代码实例讲解

梯度提升决策树GBDT原理与代码实例讲解 1.背景介绍 1.1 机器学习发展历程 机器学习是人工智能领域的一个重要分支,旨在使计算机具备学习和改进自身性能的能力。随着大数据时代的到来,海量的数据为机器学习算法提供了广阔的应用空间。在

AI天才研究院 1086

nodejs---mysql模块

nodejs操作数据库

wcgdecsdn的博客 626

第二节_PySide6项目创建流程介绍、手把手教学打包EXE可执行文件

本文详细介绍了如何使用PySide6创建一个带UI界面的Python程序,并将其打包成exe可执行文件。首先,通过Pycharm创建项目,并使用PySide6-Designer工具设计UI界面,将生成的ui文件转换为Python代码。接着,编写主程序,加载UI界面并实现功能,如加载图片、设置图标等。最后,通过资源文件管理图片资源,并确保UI界面的更新能同步到主程序中。整个过程涵盖了项目创建、UI设计、代码编写及资源管理,适合初学者学习如何将Python程序打包为可执行文件。

su桥木的博客 2555

node安装Mysql模块

node安装Mysql模块 ①.cmd安装淘宝镜像 npm install -g cnpm 在项目中安装MySQL模块 cnpm install mysql ②.配置环境变量 在环境变量中增加C:\Program Files\MySQL\MySQL Server 8.0\bin 变量名称可以随便起,比方说mysql_home 变量值为C:\Program Files\MySQL\MySQL ...

csj的前端笔记 6372

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

node中使用mysql模块的步骤

// 终端中输入 npm i mysql , 安装mysql模块 // 1. 加载mysql const mysql = require('mysql'); // 2.设置连接参数,创建连接对象 const conn = mysql.createConnection({ host: 'localhost', // 在别人电脑上就写别人的IP,自己电脑写localhost port: 3...

牛晓林的博客 535

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

node找不到mysql模块_node.js – 找不到模块`mysql`

我是node.js的新手,并试图学习它.在这里,我试图访问nodejs中的mySQL数据库.我使用npm install mysql为此安装模块,但我没有在node_modules文件夹中获取mysql的任何文件夹.但是从终端安装mysql模块时我没有收到任何错误.因为这个问题我无法在程序中使用mysql模块而且我收到错误module.js:340throw err;^Error: Cannot ...

weixin_28893221的博客 655

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

node.js mysql模块_[Node.js与数据库]node-mysql 模块介绍

转载至:https://itbilu.com/nodejs/npm/NyPG8LhlW.html#multiple-statement-querynode-mysql是一个实现了MySQL协议的Node.js JavaScript客户端,通过这个模块可以与MySQL数据库建立连接、执行查询等操作,以下是根据官方文档整理的一些模块相关介绍。1. 连接1.1 建立连接安装node-mysql模块后,就...

weixin_34209060的博客 513

node连接mysql需要安装什么模块_使用node中mysql模块连接本地数据库

连接数据库的方法迄今为止学了三种: cmd方式、可视化工具,今天记第三种----后台服务器之node端连接数据库。一:mysql模块介绍与下载1.mysql模块是node端专门连接数据库的第三方模块2.下载:由于是第三方模块,需要使用npm下载$ npm install mysql --save -dev;但是这样并没有在项目本地生成配置文件,因而还需要:(请注意:这条命令要在要使用的项目下...

weixin_39866874的博客 283

node.js mysql 模块_Node.js第三方模块之mysql

安装$ cnpm i mysql介绍mysql模块是Node.js的mysql驱动,由JavaScript编写,不需要编绎,并且完全开源。示例首先创建测试用的数据库与数据表:mysql> CREATE DATABASE my_db;Query OK, 1 row affected (0.00 sec)mysql> USE my_db;Database changedmysql> ...

weixin_35544325的博客 236

node连接 mysql模块_使用node中mysql模块连接本地数据库

连接数据库的方法迄今为止学了三种: cmd方式、可视化工具,今天记第三种----node端连接数据库。一:mysql模块介绍与下载1.mysql模块是node端专门连接数据库的第三方模块2.下载:由于是第三方模块,需要使用nmp下载$ npm install mysql --save -dev;但是这样并没有在项目本地生成配置文件,因而还需要:(请注意:这条命令要在要使用的项目下使用!)$ ...

weixin_30817835的博客 380

node.js 加载mysql模块问题

最近在学习node.js,学到node.js连接mysql数据库时出现了cannot find module 'mysql'问题,网上搜发现是自己没有安装mysql模块。 安装mysql模块步骤: 打开命令提示符 --> 输入 npm install mysql 即可安装mysql模块,这里有一个问题,就是安装路径与nodejs的安装路径不在一起,这个可以通过命令修改安装路径,我就不写了。

firstblog的博客 3815

提示找不到mysql模块,找不到模块`mysql` node.js

i am a newbie to nodejs. To connect mysql, i installed mysql on node using the command,npm install mysqlI didn't get any error while installing. Then i tried executing the following code,var mysql = r...

weixin_36258720的博客 966

使用node的mysql模块操作MySQL数据库

平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。1、打开根目录,打开终端,初始化执行npm init -y;2、下载mysql: npm i mysql;著作权归作者所有,转载或内容合作请联系作者。3、测试mysql模块是否正常工作。4、查询 users 表中所有数据。2、建立和MySQL数据库的联系。5、插入数据到 users 表中。1、导入mysql模块;

pingguocu3的博客 224

node mysql 模块 封装_node封装mysql模块

'use strict';const mysql= require('mysql');var local = truevarpool//创建连接池if(local) {pool=mysql.createPool({connectionLimit:50,host:'localhost',user:'root',password:'root',database:'crawl',multipleStat...

weixin_42421824的博客 168

node mysql模块-使用node连接数据库

node mysql模块-使用node连接数据库

qq_45030898的博客 515

【Node.js】MySQL数据库的第三方模块(mysql)

【MySQL数据库操作指南】使用Node.js的mysql2模块连接MySQL数据库,实现增删改查操作。首先通过npm安装mysql2模块,配置数据库连接参数。测试连接成功后,演示插入数据(支持对象直接插入)、更新数据(支持便捷方式更新)以及删除数据(推荐使用标记删除)等操作。关键点包括:使用占位符防止SQL注入,检查affectedRows判断操作是否成功,建议通过唯一标识id操作数据。标记删除通过status字段(1/0)表示记录状态,提升数据安全性。

weixin_44899940的博客 1109
上一篇: node安装jQuery
下一篇: DOM操作
*初级小白*~
博客等级 码龄7年 24粉丝 108原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值