Я использую json-rule-engine
. https://www.npmjs.com/package/json-rules-engine У меня есть список студентов, в котором указаны имя, возраст и их процентное соотношение. Также у меня есть business rule
, процентное соотношение должно быть больше или равно 70
, а возраст должен быть в [25
, 28
].
поэтому я хочу напечатать имена всех учащихся, у которых процент больше 70 и возраст [25,28]
, поэтому я попробовал вот так
const fastify = require("fastify");
const app = fastify();
const { Engine } = require("json-rules-engine");
let engine = new Engine()
engine.addRule({
conditions: {
all: [
{
fact: "percentage1",
operator: "greaterThanInclusive",
value: 70,
path: '$.percen'
},{
fact: 'percentage1',
operator: 'in',
value: [25,28],
path: '$.age'
}
]
},
event: {
type: "message",
params: {
data: "hello-world! (greater than 70)"
}
}
});
let facts = [
{
name:"naveen",
percentage:65,
age:30
},
{
name:"rajat",
percentage:50,
age:30
},
{
name:"ravi",
percentage:75,
age:25
},
{
name:"kaushal",
percentage:64,
age:13
},
{
name:"piush",
percentage:89,
age:12
}
]
engine.addFact('percentage1', function (params, almanac) {
console.log('*****',almanac.factValue('percentage'))
return almanac
})
// Run the engine to evaluate
facts.forEach((fact) => {
engine
.run(fact)
.then(results => {
if (results.events.length) {
console.log("Student,", results.almanac.factMap.get('name').value, ", meet the event(s)", results.events)
}
})
})
https://repl.it/repls/SnappyOverjoyedStaff#index. js
ожидаемый результат
{
name:"ravi",
percentage:75,
age:25
},
Я хочу использовать $
или path: '$.percen'
для понимания .. подскажите пожалуйста, где я делаю не так?
какое-нибудь обновление?