我的目标是通过检查某些属性在执行之前和之后是否有效来执行和测试一些Node-RED流 . 我知道存在一些方法来测试隔离中的一些节点,或者甚至通过使用注入到原始流中的辅助节点来测试一些流,例如, https://github.com/node-red/node-red-node-test-helper,但我想测试流程而不改变它 . 为此,我找到了一个实现JS范式范例的npm模块(https://www.npmjs.com/package/aspectjs) . 使用此模块,您基本上可以定义要观察的切入点以及在切入点执行之前/之后要提出的建议 . 我已经尝试了它,它适用于简单的例子,但当我尝试在Node-RED上下文中应用它时,我有很大的问题 . 给出如下的简化示例:

let subflow, advice;
/*pointcut(s) declaration*/
subflow = {
    pointcut: function(){ 
        /*put Node-RED flow here and execute it, somehow*/
    },
};
/*advice(s) declaration*/
advice = {
    checkAfterPointcut: function check(){/*put assert here*/}, 
};
after(subflow , "pointcut").add(advice, "checkAfterPointcut"); 
/*pointcut execution (it will activate the advice)*/
subflow.pointcut();

我想找到一种方法来替换/放置Node-RED流并在这里执行它,不知何故/可以处理和执行我的Node-RED流 . 任何的想法?