自定义模块
1. 概述
Enhancer 支持将常用后端代码块以模块的形式封装,提高系统的复用性和可维护性。定义好的模块可以在任何后台运行的代码中使用,包括自定义接口, 事件响应后台过程(JS 过程或者 SQL 前后脚本), 其他自定义模块, 系统启动函数, 登录前中后校验。
2. 定义模块
在 工作台->自定义模块 开发面板中添加一个自定义模块,命名为 my-custom-module:
var message = 'Hello world!';
// Node JS 通用模块规范,使用 module.exports 才能将代码导出暴露给外部使用。
module.exports = {
add: function(x, y) {
return x + y;
},
sub: function(x, y) {
return x - y;
},
query: function(Enhancer, id, callback) {
var dbService = Enhancer.getDatabaseService();
var sql = `SELECT * FROM employee WHERE id = ?`;
dbService.execute(sql, [id], function(err, result) {
if (err) {
callback(err);
return;
}
callback(null, result);
});
}
};
定义完毕之后,其他地方使用该模块只需书写 var mod = require('@custom/模块名') 即可。
注意:自定义模块内不支持直接使用 Enhancer 全局对象和 @变量@,如果有使用,需要自己留出方法传递参数。
3. 使用模块
【例一】模块传参及调用
var mod = require('@custom/my-custom-module');
var x = @11-X@;
var y = @11-Y@;
var result = mod.add(x, y);
console.log('Result:', result);
【例二】数据库查询
var mod = require('@custom/my-custom-module');
var id = @11-ID@;
mod.query(Enhancer, id, function(err, result) {
if (err) {
console.log('发生错误,原因:');
console.error(err);
return;
}
console.log('查询结果:', result);
});