Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.01.2017, 17:01
Новичок на форуме
Отправить личное сообщение для peter_iglaev Посмотреть профиль Найти все сообщения от peter_iglaev
 
Регистрация: 10.01.2017
Сообщений: 1

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

Заранее спасибо за консультацию.
Ответить с цитированием
  #2 (permalink)  
Старый 10.01.2017, 18:39
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

global.subject = require('./functions');
var patr = require('./patronomyc');


Или

var fs = require('fs');
var patr = new Function('subject', fs.readFileSync('./patronomyc').toString())(require('./functions'));
__________________
kobezzza
code monkey

Последний раз редактировалось kobezzza, 10.01.2017 в 18:47.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамическая загрузка модуля + расширение функционала главного модуля Aries Angular.js 1 13.11.2013 21:11
open.window в текущем окне Kaleos Общие вопросы Javascript 1 14.07.2013 15:22
Как узнать, открывается ссылка в новом окне или в текущем? eais Events/DOM/Window 5 05.12.2012 15:35