一:在项目中操作数据库的步骤
① 安装操作 MySQL 数据库的第三方模块(mysql)
mysql 模块是托管于 npm 上的第三方模块。它提供了在 Node.js 项目中连接和操作 MySQL 数据库的能力。
想要在项目中使用它,需要先运行如下命令,将 mysql 安装为项目的依赖包:
npm i mysql
// 导入mysql模块
const mysql = require('mysql')
// 建立与数据库的链接
const db = mysql.createPool({
host: '127.0.0.1', //数据库的ip地址
user: 'root', //登录数据库的账号
password: 'zj123123', //登录数据库的密码
database: 'my_db_01' //要操作的数据库
})
// 测试mysql的是否可以正常工作
// db.query('select 1', (err, results) => {
// if (err) return console.log(err.message);
// //只要能打印出[ RowDataPacket( '1':1}]的结果,就证明数据库连接正常
// console.log(results);
// })
// 查询所有的数据
const sqlStr = 'select * from users'
db.query(sqlStr, (err, results) => {
if (err) {
return console.log(err.message);
}
console.log(results);
})
② 通过 mysql 模块连接到 MySQL 数据库
③ 通过 mysql 模块执行 SQL 语句
案例:
增删改查:
// 引入express
const express = require('express')
// 导入mysql模块
const mysql = require('mysql')
// 建立与数据库的链接
const db = mysql.createPool({
host: '127.0.0.1', //数据库的ip地址
user: 'root', //登录数据库的账号
password: 'zj123123', //登录数据库的密码
database: 'my_db_01' //要操作的数据库
})
// 创建web服务器
const app = express()
// app.get('/api/users', (req, res) => {
// const sqlStr = 'select * from users'
// db.query(sqlStr, (err, results) => {
// if (err) {
// return console.log(err.message);
// }
// res.send(JSON.stringify(results))
// })
// })
// app.get('/api/users/:id', (req, res) => {
// const id = req.params.id
// const sqlStr = 'select * from users where id=' + id
// db.query(sqlStr, (err, results) => {
// if (err) {
// return console.log(err.message);
// }
// res.send(JSON.stringify(results))
// })
// })
//插入语句
// const user = { usename: 'zhao', password: ' 123456' }
// const sqlStr = 'insert into users(usename,password) values(?,?) '
// db.query(sqlStr, [user.usename, user.password], (err, results) => {
// if (err) {
// return console.log(err.message);
// }
// if (results.affectedRows === 1) {
// console.log('插入数据成功');
// }
// })
// 简便数据插入方法
// const user = {
// usename: 'jing',
// password: '987654'
// }
// const sqlStr = 'insert into users set ?'
// db.query(sqlStr, user, (err, results) => {
// if (err) {
// return console.log(err.message);
// }
// if (results.affectedRows === 1) {
// console.log('插入数据成功');
// }
// })
// 更新数据
// const user = {
// id: 7,
// username: 'meng',
// password: '089765'
// }
// 定义SQL语句
// const sqlStr = 'update users set usename=?,password=? where id=?'
// db.query(sqlStr, [user.username, user.password, user.id], (err, results) => {
// if (err) {
// return console.log(err.message);
// }
// if (results.affectedRows === 1) {
// console.log('更新数据成功');
// }
// })
//更新数据的便捷方法
// const user = {
// id: 17,
// usename: 'feng',
// password: '089765'
// }
// const sqlStr = 'update users set ? where id=?'
// db.query(sqlStr, [user, user.id], (err, results) => {
// if (err) {
// return console.log(err.message);
// }
// if (results.affectedRows === 1) {
// console.log('更新数据成功');
// }
// })
// 删除数据
const sqlStr = 'delete from users where id=?'
db.query(sqlStr, 17, (err, results) => {
if (err) {
return console.log(err.message);
}
if (results.affectedRows === 1) {
console.log('删除数据成功');
}
})
//调用app.listen方法,制定端口号并启动web服务器
// app.listen(8889, () => {
// console.log('服务器启动了');
// })
// 测试mysql的是否可以正常工作
// db.query('select 1', (err, results) => {
// if (err) return console.log(err.message);
// //只要能打印出[ RowDataPacket( '1':1}]的结果,就证明数据库连接正常
// console.log(results);
// })
// 查询所有的数据
// const sqlStr = 'select * from users'
// db.query(sqlStr, (err, results) => {
// if (err) {
// return console.log(err.message);
// }
// console.log(results);
// })