2014-12-25 3 views
3
var RuleEngine = require('node-rules'); 
var titan = { 
     "product": "Titan", 
     "amount":"500", 
     "base":1, 
     "conversation":0.91, 
     }; 
     var oxicash = { 

     } 

     var rules = [{ 
     "name": "Product rule", 
     "description": "when the product matches Titan", 
     "priority": 1, 
     "on":1, 
     "condition": 
      function(fact,cb) { 
       cb(fact && (fact.product = "Titan")); 
      }, 
     "consequence": 
      function(cb) { 
       console.log("Rule 1 matched for "+this.product); 
       var a = this.amount; 
       var b = this.base; 
       var c = this.conversation; 

       var result1= (a*c)/b; 
       console.log("the promotion cost is:"+result1); 
       this.result = true; 
       this.process = true; 
       cb(); 
      } 
    }]; 
    var R = new RuleEngine(rules); 

R.execute(titan,function(result){ 

    if(result.result) 
     console.log("\n-----u have discount----\n"); 
    else 
     console.log("\n-----u dont have discount----\n"); 

    console.log(result); 
    console.log(result1); 


}); 

규칙 엔진을 처음 사용합니다. 규칙을 쓰려고하는데 나는 "노드 - 규칙"을 만들었습니다. 그러나 나는 "nools"가 규칙을 쓰는 것이 가장 좋았던 것을 알게되었다. 그리고 그것은 가벼운 무게 다. 하지만 노울에 대해서는 아무것도 몰라요. 나는 전체 문서를 공부했지만 혼란 스럽다. 그러니 "노드 규칙"에서 작성한이 규칙을 "nools"로 변환하면 누구든지 나를 도울 수 있습니다. 친절한 정보를 미리 알려 주셔서 감사합니다.노드 규칙 엔진에서 nools 규칙 엔진으로 규칙 변환

답변

1
//server.js file 
"use strict"; 
var nools = require("nools"); 
var ruleFilePath = __dirname + "/rule.nools"; 
var flow = nools.compile(__dirname + "/rule.nools"); 
var session=flow.getSession(); 
var Titan = flow.getDefined("titan"); 



var t = new Titan(), 
    session1 = flow.getSession(new Titan({product : 'titan',amount : 500, base : 1, conversation : 0.91}), t), 
    s1 = +(new Date()); 
session1.match().then(function() { 

    console.log("%d [%dms]", t.rule3, +(new Date()) - s1); 
    //console.log() 
    session1.dispose(); 
    profiler.pause(); 
}); 
//rule.nool 
define Titan { 
product : null, 
amount : null, 
base : null, 
conversation : null 
} 
rule product_rule { 
when { 
    t1 : Titan t1.product == 'titan' && t1.amount == 500 && t1.base == 1 && t1.conversation == 0.91 ; 
} 
then { 
var a = t1.amount; 
     var b = t1.base; 
     var c = t1.conversation; 
     console.log(a); 
     var v = (a*c)/b; 
     console.log(v); 
} 
}