一、安装sqlite3
运行命令
npm install sqlite3
如果有安装出错的小伙伴,可以按提示要求去装npm install -g node-gyp
但我不是这么解决的,在package.json
文件里面加上 "sqlite3": "^5.0.8"
,然后重新npm install
,此时还会同样给你报错,但是不要慌,等个几分钟,就会显示成功了,你要问我为什么,我也不知道。
在router文件夹下面创建DbRouter.js
,创建完,不要忘记在app.js里面引入。
二、链接数据库
//导入模块
var sqlite3 = require("sqlite3").verbose();
//指定数据库文件位置
var db = new sqlite3.Database(__dirname + "/test.sqlite3");
三、执行查询语句,使用all方法
db.all("SELECT * FROM `user` where `id` = ?", [1],(err,rows)={
if(err == null){
console.log("查询数据:",rows)
}
});
db.all("SELECT * FROM `user`", [],(err,rows)={
if(err == null){
console.log("查询数据:",rows)
}
});
举例:
router.get("/testlist", (req, res) => {
db.all("select * from `user`", [], (err, rows) => {
if (err == null) {
res.send(rows)
} else {
res.send(err)
}
})
})
上面的代码意思是说,查询user表,返回user表的数据回来
执行插入、修改、删除语句,使用run方法
let insert_sql = "INSERT INTO `user` (`id`,`name`,`account`,`password`,`create_time`,`balance`)
VALUES (?, ?, ?, ?, ?, ? );"
db.run(insert_sql, [6, 'peter', 'testaccount01', '123456', 123456,100],
function(err, rows){
if(err == null){
console.log("数据插入成功");
}
});
举例:
router.post("/add", (req, res) => {
let json_body = req.body;
let insert_sql = "INSERT INTO `user` (`id`,`name`,`account`,`password`,`create_time`,`balance`) VALUES ( ?, ?, ?, ?, ?, ? );"
db.run(insert_sql, [json_body.id, json_body.name, json_body.account, json_body.password, '2022', json_body.balance], (err, rows) => {
if (err == null) {
res.send("执行成功");
} else {
res.send(err)
}
})
})
分析:从前端获取传参,将拿到的参数插入进数据库内,字段的值需要对应,不能少,VALUES后面的?表示占位符。
还有很多操作也就不赘述了,后面还会有一个小案例的项目,都会给一个传送门自行获取:https://tingnan6.coding.net/public/express/express/git/files(目前会根据进度进行仓库的更新)