服务器端 API

服务器端的 API 可以在服务器端的执行环境中使用:

  1. 全局配置的各种回调函数如:【系统启动函数】,【用户登录前,中,后回调函数】。
  2. 事件响应配置中的后台执行函数如:【sql执行前后台脚本】,【JavaScript 过程】。
  3. 自定义后台接口中。

Enhancer 全局对象

setData(name, value) 设置全局数据。该数据会保存到 Redis,不参与@变量@解析体系。

  • @param name {String}
  • @param value {String}

getData(name, callback) 获取全局数据。

  • @param name {String} 变量名
  • @param callback {Function} 获取数据回调函数,回调参数第一个为错误对象,第二个为拿到的值。

【例】

Enhancer.set('mydata', 'This is a test data');
Enhancer.get('mydata', function(err, value) {
    if (err) {
      // 错误处理
      return;
    }
    console.log(value); //=> 'This is a test data';
})

getVariable(name) 获取服务器端全局变量。(与用户无关的变量)

  • @param name {String} 变量名
  • @return variable {Object} 变量值

setVariable(name, variable) 设置服务器端全局变量,只能在工作台【全局配置】-【系统启动函数】中使用,设置后能在全局使用该@变量@。前端用:@0-变量@

  • @param name {String}
  • @param variable {Object}

setSessionVariable(name, value) 设置当前用户会话变量。

  • @param name {String}
  • @param variable {Object}

getSessionVariable(name) 获取当前用户会话变量。

  • @param name {String} 变量名
  • @return {Object} 变量值

getDatabaseService() 获取数据库服务。

  • @return DatabaseService

getDatabaseConfig() 获取数据库配置。

  • @return databaseConfiguration

getContextRequest() 获取当前 HTTP 请求对象。

  • @return {HttpRequest} http 请求对象,该对象完整地保留了本次 http 请求的相关信息,是对 nodejs 原生 Http.IncomingMessage 对象的扩展。除了拥有 http 请求基本的参数属性之外还有以下常用属性和方法:
    • request.query {Object} 本次 http 请求 url 中的参数键值对。比如 request.query['name']可以取到url携带的name参数值。
    • request.body {Object} 本次 http 请求消息体键值对内容。
    • request.cookies {Object} 本次 http 请求携带的 cookie 键值对。
    • request.headers {Object} 本次 http 请求的 协议头对象。

详细文档请参考 request api

getContextResponse() 获取当前 HTTP 请求回应对象。

  • @return {HttpResponse} 对象是对 nodejs 原生 Http.ServerResponse 对象的扩展。除了拥有 http 响应所需的基本方法外还有以下常用方法:
    • response.status(code) 设置响应代码,默认 200。
    • response.send(text|json) 发送给客户端内容并结束响应。
    • response.cookie(name, value) 给客户端设置 cookie。

详细文档请参考 response api

getUserFileDir() 获取用户文件所在目录。

  • return {String} 用户通过本应用存储在服务器上的文件目录绝对路径。

resolveUserFilePath(url|path) 解析用户文件资源 url,获取该文件在服务器上存储的绝对路径

  • param url {String} - 用户上传文件后,获得的文件 url,通常是一个 http 地址。如:http://127.0.0.1:5301/file/20180422/JnPw3Av6YrFCQ9KdXo36-99U.png
  • return {String} 该 url 对应的文件,在服务器上存放的绝度路径地址。

DatabaseService 数据库服务对象。

该对象通过调用 Enhancer.getDatabaseService() 获取。

execute([connectionName, ]sql, params, callback) 执行 SQL,无需关心数据库连接,内部自动获取,返回。

  • @param connectionName {String} 数据连接名,如果缺省参数或者为空,则将使用默认数据连接执行 SQL。
  • @param sql {String} SQL 语句(SELECT, UPDATE, DELETE, INSERT)
  • @param params {Array} sql 执行参数,按照 sql 语句中占位符的顺序排列。
  • @param callback {Function} 回调函数
    • err {Object} 错误对象,不为空时需要做一些错误处理。
    • result {Object} 执行结果
      • rows -- 查询的结果行,执行 SELECT 时有效。
      • affectedRows -- 影响的行数目,执行 UPDATE, DELETE, INSERT 等语句时有效。
      • metaData -- 数据列元数据,执行 SELECT 时有效。
      • ... 其他增删改执行结果,不同的数据库返回的字段有所不同,可以执行console.log(result)在控制台查看。

beginTransaction([connectionName, ]callback) 开始事务。

  • @param connectionName {String} 数据连接名,如果缺省参数或者为空,则将使用默认数据连接开始事务。
  • @param callback {Function} 回调函数
    • err {Object} 错误对象,不为空时需要做一些错误处理。
    • conn {Object} 数据库连接对象
【例】
var DatabaseService = Enhancer.getDatabaseService();
DatabaseService.beginTransaction(function(err, conn) {
    var sql1 = 'INSERT INTO TABLE 1...';
    var sql2 = 'UPDATE TABLE 2...';
    conn.execute(sql1, [], function(err1, result1) {
        if (err1) {
            conn.rollback();
            return /* 做一些错误处理,如果环境中有 done 方法,则直接 done(err) */
        }
        conn.execute(sql2, [], function(err2, result2) {
            if (err2) {
                conn.rollback();
                return /* 做一些错误处理,如果环境中有 done 方法,则直接 done(err) */
            }
            // ... 
            conn.commit(function(err) {
                if (err) {
                    return conn.rollback();
                }
                ... 
            })
        });
    });
})

User 用户对象,只能在全局配置的登录校验前、中、后函数函数中使用。

setId(userId) 设置用户ID,设置后变量 @USER_ID@ 和 @1-USER_ID@ 可分别用于服务端和前端。

getId() 获得用户ID,登录前其值即当前登录用户输入的id内容。

setName(name) 设置用户名,设置后变量 @USER_NAME@ 和 @1-USER_NAME@ 可分别用于服务端和前端。

getName() 获得用户名。

getPassword() 获得用户登录密码。

setRoles(roleIDs) 设置用户角色。

  • @param roleIDs {String} 角色 ID 集合,多个角色逗号分隔。角色 ID 只能是定义在工作台角色管理中的值。设置后会拥有对应的页面访问权限。

getRoles() 获得角色。

getRolesDisplayName() 获得角色对应的显示名。

setVariable(varname, value) 设置属于用户的变量。

  • @param varname {String} 变量名,设置后 @varname@ 和 @1-varname@ 可分别在服务端和前端使用。
  • @param value {Object | String | Boolean}

getVariable(varname) 获得用户变量。

results matching ""

    No results matching ""