sqlite3设置用户名为唯一字段,用sqlite3模块写入重复用户名时报错杀进程,这种情况应该怎么处理?
先验证用户名是否存在吗? 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();
}