sqlite3设置用户名为唯一字段,用sqlite3模块写入重复用户名时报错杀进程,这种情况应该怎么处理?
发布于 7 年前 作者 NOOZN 2483 次浏览 来自 问答

先验证用户名是否存在吗? N-blog中用Mongolass写入重复用户名也会报错 但他是怎么捕获到错误的 sqlite3模块是异步的 用try 无效

var sqlite3 = require('sqlite3').verbose();
var db = new sqlite3.Database('./database/flybbs.db');
// 注册一个用户
exports.create =  function create(user, fn) {
  db.serialize(function() {
    // 建表
    // db.run("CREATE TABLE IF NOT EXISTS todo (title TEXT)");

    // 插入数据
    var stmt = db.prepare("INSERT INTO user_table VALUES (?, ?, ?, ?, ?, ?)");

    stmt.run(user);
    stmt.finalize();

    // db.all("SELECT rowid AS id username FROM user_table", function (err, rows) {
    //     if(err) console.log(err)
    //     fn(err, rows)
    // });
    db.get("SELECT * FROM user_table WHERE username LIKE '" + user[1] + "'", function (err, rows) {
        fn(err, rows)
    });
  });
  db.close();
}
回到顶部