为了后面我们的单页面图书管理系统能够正常编写,我们先来了解一下node与mysql之间的连接和操作。
首先准备工作,下载mysql 和 npm install mysql,接下来配置mysql
配置mysql
/*
插入数据库
*/
// 加载数据库驱动
var mysql = require('mysql');
var connection = mysql.createConnection({
host : 'localhost',
user : 'root',
password : '123456',
database : 'mybook'
});
// 执行连接数据库
connection.connect();
let sql = "insert into book set ?";
let data = {
name: "西藏生死书",
author: "郑振煌",
category:"宗教",
description: "谈论生死观"
}
// 操作数据库
connection.query(sql, data, function (error, results, fields) {
if (error) throw error;
//console.log(results.affectedRows);
if(results.affectedRows>0) {
console.log("插入成功");
}
});
// 关闭数据库
connection.end();
- 第一步 当然是先引用第三方插件
- 第二步 创建连接,填入数据库相关信息(主机名 用户 密码 数据库)
- 第三步 去连接数据库
- 第四步 操作数据库。通过query去对数据库进行操作,第一个参数是sql语句,第二个参数是数据,第三个则是回调
- 第五步 关闭数据库
这样子,我们就可以将上述代码封装成一个通过的数据库的js
/*
封装操作数据库的通用api
*/
// 加载数据库驱动
// 更新数据
var mysql = require('mysql');
exports.base = (sql,data,callback)=>{
var connection = mysql.createConnection({
host : 'localhost',
user : 'root',
password : '123456',
database : 'mybook'
});
// 执行连接数据库
connection.connect();
// 操作数据库
connection.query(sql, data, function(error, results, fields) {
if (error) throw error;
callback(results);
});
// 关闭数据库
connection.end();
}
很显然,我们的数据库是mybook。接下来我们来讲解一下数据库的增删查改,首先我们新建了一个表,表的内容有name author category description。
添加数据
const db = require("./db.js");
let sql = "insert into book set ?";
let data = {
name: "西藏生死书",
author: "郑振煌",
category:"宗教",
description: "谈论生死观"
}
db.base(sql,data,(result)=>{
console.log(result);
});
删除数据
const db = require("./db.js");
let sql = "delete from book where id=?";
let data = [2];
db.base(sql,data,(result)=>{
console.log(result);
});
修改数据
const db = require("./db.js");
let sql = "update book set name=?,author=?,category=?,description=? where id=?";
let data = ["活法","稻盛和夫","哲学","阐述人生的真理、生活的意义、人生应有的状态",3]
db.base(sql,data,(result)=>{
console.log(result);
});
查找数据
const db = require("./db.js");
let sql = "select * from book where name= ?";
let data = ["活法"];
db.base(sql,data,(result)=>{
console.log(result);
});
注意的是data里面的数据要和sql语句传入的数据一一对应。
其实数据库内容不多,接下来会编写小项目---图书管理系统,如有表达错的请谅解,并请提出指出,且修改错误,望能共同进步。