一、使用方法
1.进入到文件,打开powershell窗口,进行初始化:npm init -y
2.执行npm install mysql --save命令下载数据库
3.导入模块
二、连接数据库
var mysql = require('mysql');
//创建数据库的链接
var connection = mysql.createConnection({
host:"localhost", //访问地址
user:"root", //用户名
password:"1234567", //密码
database:"mybook" //数据库名称
});
// 执行连接操作
connection.connect();
// 操作数据库
connection.query('select count(*) as total from books', function (error, results, fields) {
console.log('============');
if (error) throw error;
console.log('表books中共计有: ', results[0].total+'条数据');
});
// 关闭 数据库
connection.end();
三、增删查改的实现
1.增加数据
语句格式:insert into 表名称 set 数据。添加数据时必须与数据库的名称对应
let sql = 'insert into books set ?'
let data = {
id:11,
bookName: '明朝那些事',
bookAuthor: '当年明月',
bookCategory: '文学',
bookDesc:'明朝的历史'
}
2.删除数据
删除时必须要有where,如果没有添加,会删除全部数据
let sql = 'delete from books where id=?';
let data = [9];
3.查询数据
两种方法1.查询全部数据 2.按条件查询,也可以查询单独到单独的列
let sql = 'select * from books';
let data = null;
let sql = 'select * from books where id=?';
let data = [10];
4.修改数据
两者必须一一对应
let sql = 'update books set bookName=?,bookAuthor=?,bookCategory=?,bookDesc=? where id=?';
let data = ['浪潮之巅','吴军','计算机','IT巨头的兴衰',9];
四、封装操作数据库通用的api
是否添加成功可以判断 affectedRows是否等于1,如果不等于就是添加失败。 changedRows可查看有无修改
const mysql = require('mysql');
// 接口
exports.base = (sql, data, callback) => {
// 创建数据库的链接
const connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: '123456',
database: 'book'
});
// 执行连接操作
connection.connect();
// 操作数据(数据库操作 也是异步的)
connection.query(sql, data, function (error,results,fileds) {
if (error) throw error;
callback(results);
})
}
在dbtest.js下
////测试通用的api
const db = require('./db.js');
let sql = 'insert into tushuguanli set ?';
let data = {
id: 5,
sm: '笑傲江湖',
zz: '金庸',
nd: '文学',
ms:'武侠小说'
}
db.base(sql,data,(results)=>{
console.log(results)
})
五、登录验证实现
1.需要引入的模块有:express、body-parse、mysql
const express = require('express');
const bodyParser = require('body-parser');
const db = require('./db'); //引入封装数据库通用的api
const app = express();
2.主要使用查询语句,进行判断用户输入的是否与数据库相匹配(在数据库中只有一条与之匹配)
// 挂载中间件 use()
app.use(bodyParser.urlencoded({ extended: false }));
app.use(express.static('views'));
app.post('/check', (req, res) => {
let param = req.body;
let sql = 'select count(*) as total from admin where name=? and pwd=?'
let data = [param.name, param.pwd]; //name与提交的name相同
db.base(sql, data, (result) => {
console.log(result);
if (result[0].total == 1) {
res.send('login success');
} else {
res.send('login fail');
}
})
})
app.listen(3000, () => {
console.log('running......');
})