执行 SQL 执行前后台脚本(执行在服务器端)

设置此脚本可以满足以下需求:

  • SQL 执行前需要对参数做后台校验。
  • SQL 执行前需要改变或者新增参数。

【例】

if (!@11-PHONE@) {
    // 校验不合法则调用 done 方法,并设置 success 参数为 false。
    // 不论本次执行成功失败,需要调用 done 方法表示本次过程结束。
    // done 方法的第一个参数传递系统级 err,第二个参数传递常规结
    // 果对象(包含 success 和 message 字段)。
    done(null, {
        success: false,
        message: '电话号码必填'
    });
    return;
}

/* 可以根据情况再做一次 IO 来深度校验某些参数,然后调用 done() 方法。*/
// var dbService = Enhancer.getDatabaseService(); 
// ...

/* 如果希望覆盖或者新增变量参数,则增加第三个参数传递,作为新增变量列表。*/
done(null, null, {
   "11-PHONE": 9872129,
   "11-NEW_VAR": "Hello"  // <-- SQL 中可使用 @11-NEW_VAR@
});

也可直接调用 done 方法,让后续执行:

done();

注意:一定要调用 done 方法,程序才能继续执行。

【完整示例】

var sql = 'SELECT count(*) num FROM user WHERE name ?';
var db = Enhancer.getDatabaseService();
db.execute(sql, [@12-NAME@], function(err, result) {
    if (err) {
        done(err);
        return;
    }
    if (result.rows[0].num > 0) {
        done(null, {success: false, message: '用户名已经存在!'});
        return;
    }
    done();
});

results matching ""

    No results matching ""