【目录】
Nodejs学习笔记(一)——基础之全局对象、包和npm
Nodejs学习笔记(二)——模块
Nodejs学习笔记(三)——同步和与异步之文件系统模块
Nodejs学习笔记(四)——http协议与服务器
Nodejs学习笔记(五)——express框架、路由(器)及中间件
Nodejs学习笔记(七)——接口API
文章目录
属于第三方模块,Node.js下操作mysql数据库的模块
一、Mysql模块连接
下载安装
npm install mysql
1.引入mysql模块
const mysql = require('mysql');
2.创建连接对象
保证已在mysql中导入tedu数据库,详情导入方式可查看命令教学:Mysql(三)——(cmd)数据库的命令操作 — 2.1导入外部数据库sql文件
user和password以及database根据自己使用的更改!
createConnection() 创建普通连接
const c = mysql.createConnection({
host: '127.0.0.1', //域名/IP
port: '3306', //端口
user: 'root', //数据库的用户名
password: '123456', //密码
database: 'tedu' //连接成功后要进入的数据库
});
可以使用c.connect();
测试连接
3.执行sql命令语句
query(sql, callback(err, result));
异步操作,通过回调函数获取结果
- err 可能产生的错误结果
- result 成功的结果
3.1查询
var sql = 'select * from emp'
c.query(sql, function(err, result) {
if (err) throw err;
console.log(result);
});
将打印emp表中所有表项:
.
.
.
3.2 插入数据
//null自增,插入一条数据到emp中
var sql = "insert into emp values(null,'Elegant', 0, '2000-10-22', 10000, 10)";
c.query(sql, function(err, result) {
if (err) throw err;
console.log(result);
});
再次查询,则可以看到多出一项,插入成功:
二、连接池
1.引入mysql模块
const mysql = require('mysql');
2. 创建连接池对象
const pool = mysql.createPool({
host: '127.0.0.1',
port: '3306',
user: 'root',
password: '123456',
database: 'tedu',
connectionLimit: 15 //连接池大小
});
三、占位符?
占位符(?):mysql模块提供,用于过滤用户提供的数据,防止sql注入
SQL注入:在让用户提供的值中出现了对数据库有攻击的命令(引号问题)
第二个参数为一个数组,代表占位符表示的对应的数据
let obj = {
eid: null,
ename: 'Erya',
sex: 0,
birthday: '2000-08-22',
salary: 15000,
deptId: 10
}
3.1插入
法一:原始方法
pool.query('insert into emp values(?,?,?,?,?,?)'
,[obj.eid, obj.ename, obj.sex, obj.birthday, obj.salary, obj.deptId], (err, result)=>{
if (err) throw err;
console.log(result);
});
法二:直接set 插入对象
pool.query('insert into emp set ?',[obj], (err, result)=>{
if (err) throw err;
console.log(result);
})
3.2 删除
let eid = 19;
pool.query('delete from emp where eid = ?',[eid],(err, result)=>{
if (err) throw err;
console.log(result);
});