使用node连接sqlite

一、安装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表的数据回来


testlist接口
执行插入、修改、删除语句,使用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(目前会根据进度进行仓库的更新)

你可能感兴趣的:(使用node连接sqlite)