美文网首页
NodeJS 使用 better-sqlite3 操作sqlit

NodeJS 使用 better-sqlite3 操作sqlit

作者: ayusong870 | 来源:发表于2020-11-08 10:35 被阅读0次

Better-sqlite3简介

Node.js中SQLite3最快最简单的库。
• 完整的事务支持
• 高性能,高效率和安全性
• 易于使用的同步API (比异步API更快......是的,你读得正确)
• 支持用户定义的函数,聚合和扩展
• 64位整数(在您需要它们之前不可见)
性能上 better-sqlite3 优于 sqlite3 。

安装

npm install --save better-sqlite3

ps因为better-sqlite3是基于c++开发的,因此better-sqlite3的安装非常麻烦,基本上这一条命令搞不定,会让你再安装vs等插件。

使用

const db = require('better-sqlite3')('foobar.db', options);
const row = db.prepare('SELECT * FROM users WHERE id=?').get(userId);
console.log(row.firstName, row.lastName, row.email);

代码示例

const TAG = '## TokenDao: ';
 
class TokenDao {
 
    constructor(db) {
        this.db = db;
        this.saveUserToken = this.saveUserToken.bind(this);
    }
 
    getUserToken(username,appType){
        var stmt = this.db.prepare('select userID,username,tokenString from UserToken where username=? and appType=?');
        var row = stmt.get(username,appType);
        console.log('getUserToken: '+JSON.stringify(row));
        return row;
    }
 
    saveUserToken(username,appType,tokenString ) {
        var stmt = this.db.prepare('select userID,username,tokenString from UserToken where username=? and appType=?');
        var row = stmt.get(username,appType);
        if(row){
            console.log('存在,则更新');
            //存在,则更新
            var stmt = this.db.prepare("update UserToken set tokenString = ? where username=? and appType=?");
            stmt.run(tokenString,username, appType);
        }else{
            console.log('不存在,则插入');
            //不存在,则插入
            var stmt = this.db.prepare("INSERT INTO UserToken (userName,appType,tokenString) VALUES (?,?,?)");
            stmt.run(username, appType,tokenString);
        }
    }
}
 
module.exports = TokenDao;

相关文章

网友评论

      本文标题:NodeJS 使用 better-sqlite3 操作sqlit

      本文链接:https://www.haomeiwen.com/subject/clcknhtx.html