'custome defined'
/**
 * 这个scripts里面，有三部分，1、处理前置，2、条件选择，3、处理后置（具体的模版选择。关于模板这里也需要做一个框架。）
 * 脚本模块
 * 需要注意的一点是：有手动逻辑／自动处理逻辑--》用户定义的内容／-父节点是项目下的URL
 * 手动逻辑的重要性大于自动处理逻辑
 * 自动处理逻辑要能够对时间进行判断，也就是说，能够获取某次的时间，能进行SQL，REDIS，MONGO等的操作
 * 
 * 所有的脚本处理的地方，都要有基本中间件操作的入口
 * 
 * ---
 * 逻辑判断的是当前的URL应该走那一套返回的模版，所以模版是需要有模板框架的／模板分为两种：1、字符串模板。2、自定义结果回传
 * 模版举例
 * 1、固定模板--
 * template:<xml><${param1}></xml>
 * params:{
 * param1:"",
 * param2:""
 * }
 * 2、非自定义模版／可以实现具体的业务逻辑。
 * 不管你做什么样的操作，最后输出一定要是一个string,
 * 举例：
 * 
 */

function requireFromString(src, filename) {
    var Module = module.constructor;
    var m = new Module();
    //默认经历过解密后的都是明文的结果
    m._compile(`module.exports = { do:function(ctx){${src}}}`, filename);
    return m.exports;
}

module.exports = {
    fun1: function(ctx){
        //获取ctx的script路由
        if(ctx.bpRouter.script_Route == false){
            return
        }
        //判断优先级,
    },
    /**
     * 手动处理方法
     * 案例：
     * 1、用户想要设定这个路由走 条件A，
     * 2、用户想要设定单个设备在这个路由下走条件A
     * 3、用户想要设定单个设备在这个路由下能够暂停。
     */ 
    customeRun: function(ctx){
        // 自定义的也就是手工定义的内容，先判断是那个IP 
        ctx.bpRouter.script_Route.custome
    }
    //this.role_exports[role.project_id][role.url] = requireFromString(role.function_str)
}