Инициализация модуля в текущем окружении
Добрый день. Столкнулся со следующей проблемой в 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, время: 06:02. |