首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将规则从节点规则引擎转换为nools规则引擎

将规则从节点规则引擎转换为nools规则引擎
EN

Stack Overflow用户
提问于 2014-12-25 18:33:13
回答 1查看 1.8K关注 0票数 3
代码语言:javascript
复制
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”预先.Thanking您的亲切信息。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-27 09:17:41

代码语言:javascript
复制
//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);
}
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27649743

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档