express项目中使用MySQL
一、安装mysql 模块
1.1 先配置包管理工具
npm init -y
1.2、安装mysql 模块
npm install mysql2
二、配置mysql
// 1、导入mysql模块
const mysql = require("mysql2");
// 2、建立与mysql 数据库的链接
const db = mysql.createPool({
host: "127.0.0.1", // 数据库的ip地址
user: "root", // 登录数据库的账号
password: "Xiewei5036921.", // 登录数据库的密码
database: "my_db_01", //指定要操作的数据库
});
三、测试mysql 能否正常工作
db.query("select * from user", (err, results) => {
// mysql 模块工作期间报错了
if (err) return console.log(err);
// 能够成功的执行sql语句
console.log(results);
});
四、使用
4.1、插入数据
// 1、要插入到users表中的数据对象
const user = { username: "xc", password: "456456" };
// 2、待执行的SQL 语句,其中英文的 ? 表示占位
const sqlStr = "insert into user (username,password) values(?,?)";
// 3、使用数组的形式,依次为 ? 占位符指定具体的值
db.query(sqlStr, [user.username, user.password], (err, results) => {
if (err) return console.log(err.message);
// 注意:如果执行的是insert into ,update delete语句,则results 是个对象
// 可以通过affectedRows 属性,来判断是否插入数据成功
if (results.affectedRows === 1) console.log("插入数据成功");
});
4.2、便携插入方式 用insert into 表名 set ?
// 1、要插入的user表中的数据对象
const user = { username: "xc", password: "456456" };
// 2、待执行的sql语句,其中英文的?表示占位符
const sqlStr = "insert into user set ?";
// 3、直接将数据对象当作占位符的值
db.query(sqlStr, user, (err, results) => {
if (err) return console.log(err.message);
// 注意:如果执行的是insert into ,update delete语句,则results 是个对象
// 可以通过affectedRows 属性,来判断是否插入数据成功
if (results.affectedRows === 1) console.log("插入数据成功");
});
4.3、更新数据
// 1、要更新到users表中的数据对象
const user = { username: "xc", password: "456456",id: 1 };
// 2、待执行的SQL 语句,其中英文的 ? 表示占位
const sqlStr = "update user set username=?,password=? where id =?";
// 3、使用数组的形式,依次为 ? 占位符指定具体的值
db.query(sqlStr, [user.username, user.password,user.id], (err, results) => {
if (err) return console.log(err.message);
// 注意:如果执行的是insert into ,update delete语句,则results 是个对象
// 可以通过affectedRows 属性,来判断是否插入数据成功
if (results.affectedRows === 1) console.log("插入数据成功");
});
4.4、便携更新方式 用update 表名 set ? where id = ?
// 1、要更新的user表中的数据对象
const user = { username: "444321", password: "456456", id: 5 };
// 2、待执行的SQL 语句,其中英文的 ? 表示占位
const sqlStr = "update user set ? where id=?";
// 3、使用数组的形式,依次为 ? 占位符指定具体的值
// 注意 有几个? 第二个参数就要穿几个值
db.query(sqlStr, [user, user.id], (err, results) => {
if (err) console.log(err.message);
// 注意:如果执行的是insert into ,update delete语句,则results 是个对象
// 可以通过affectedRows 属性,来判断是否插入数据成功
if (results.affectedRows === 1) {
console.log("更新成功");
} else {
console.log("失败");
}
});
4.5、 删除数据 不建议使用 一般用标记删除
// 删除数据
// 1、待执行的SQL 语句,其中英文的 ? 表示占位
const sqlStr = "delete from user where id=?";
// 2、使用数组的形式,依次为 ? 占位符指定具体的值
db.query(sqlStr, 7, (err, results) => {
if (err) return console.log(err.message);
// 注意:如果执行的是insert into 插入语句,则results 是个对象
// 可以通过affectedRows 属性,来判断是否插入数据成功
if (results.affectedRows === 1) console.log("删除数据成功");
});
4.6、标记删除 比如status 来代表禁用 使用
// 1、待执行的SQL 语句,其中英文的 ? 表示占位
const sqlStr = "update user set status = ? where id = ?";
db.query(sqlStr, [1, 5], (err, results) => {
if (err) return console.log(err.message);
// 可以通过affectedRows 属性,来判断是否删除
if (results.affectedRows === 1) console.log("标记删除成功");
});
原文地址:https://blog.csdn.net/IT_iosers/article/details/143571762
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!