Инициализация модуля в текущем окружении
Добрый день. Столкнулся со следующей проблемой в NodeJS.
Имеются: data.json - данные по пользователю { "firstname":"Иван", "lastname":"Иванов", "patronymic":"Иванович", } functions.js - файл с функцией возврата некоего значения из JSON var data = require('./data'); function getProperty(attr) { return eval("data." + attr); } patronomyc.js - файл с определенным кодом, он поставляется в дистрибутиве к системе. Его нельзя изменять, его необходимо проверить. Соответсвенно, var subject = require('./functions'); нельзя добавить к нему var attr = subject.getProperty("patronymic"); if (attr != null && attr.length>30) attr = attr.substring(0,30); return attr; С помощью файлов data.json и functions.js я пытаюсь сэмулировать окружение для проверки работоспособности файла patronomyc.js. Создал для этого новый файл run.js var subject = require('./functions'); var patr = require('./patronomyc'); но require('./patronomyc') выдает ошибку на неизвестный объект subject. Как можно передать этот объект в модуль перед его инициализацией? Либо, запустить инициализацию в текущем окружении с уже объявленным и доступным для patronomyc.js subject? Модуль functions.js желательно также не трогать... Заранее спасибо за консультацию. |
global.subject = require('./functions'); var patr = require('./patronomyc'); Или var fs = require('fs'); var patr = new Function('subject', fs.readFileSync('./patronomyc').toString())(require('./functions')); |
Часовой пояс GMT +3, время: 02:28. |