Node.js. Подгрузка файла в текущее окружение?

Как в node.js загрузить файл в текущую область видимости. Стандартный require() помещает файл в новую область видимости из которой не видны переменные из глобальногой области видимости. Неужели для каждого модуля придется подгружать все библиотеки отдельно?

Нашел способ делать через VM, но это как-то противоестественно, загружать файл в переменную, затем эту переменную запускать.
  • Вопрос задан
  • 3392 просмотра
Пригласить эксперта
Ответы на вопрос 2
Melanitsky
@Melanitsky
Объект global — глобальный для всех файлов
global.foo = 'bar';
Ответ написан
dizballanze
@dizballanze
Software developer at Yandex
Тоже столкнулся с подобной проблемой недавно. Решил созданием объекта для каждого подключаемого модуля и возвращение конструктора этого объекта как свойства объекта exports Для каждого модуля нужно создавать отдельный объект. Свойства, которые должны быть экспортированы нужно добавлять в качестве свойств объекта exports:

// modules/test.js
exports.Test = function(param1){
    // ...
}


// script.js
require.paths.push('./modules/');
var Test = require('test').Test;
var test = new Test();
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы