Как исправить модуль node-abac «Не удается установить свойство ‘_validator’ неопределенного»

#node.js

#node.js

Вопрос:

Я пытаюсь использовать node-abac модуль для контроля доступа. Я понимаю, что он не обновлялся в течение 4 лет (на момент написания), но, возможно, это поправимо.

После настройки node-abac с помощью политики я получаю ошибку заголовка во время выполнения здесь:

node_modulesnode-abaclibabac.js:27 this._validator = new Validator(Policy);

Политика:

 const nodeAbac = require('node-abac');

const accessPolicy = {
    attributes: {
        user: {
            role: 'Is A Site Owner',
            dateJoined: 'Member for over 1 year'
        }
    },
    rules: {
        'fullAccess': {
            attributes: {
                'user.role': {
                    comparison_type: 'String',
                    comparison: 'isStrictlyEqual',
                    value: 'owner'
                }
            }
        },
        'canModerateReviews': {
            attributes: {
                'user.dateJoined': {
                    comparison_type: "datetime",
                    comparison: "isLessRecentThan",
                    value: "-1Y"
                },
                'user.reviews.length': {
                    comparison_type: 'numeric',
                    comparison: 'isGreaterThanEqualTo',
                    value: '12'
                }
            }
        }
    }
}

const accessControl = nodeAbac(accessPolicy);

module.exports = accessControl;
 

Ответ №1:

Обнаружена проблема. Я строил accessControl неправильно, без new ключевого слова.

 const accessControl = new nodeAbac(accesspolicy);
 

Теперь перейдем к поиску других ошибок реализации!