У меня есть переменные в app.js
:Можно ли импортировать переменные в JavaScript (node.js)?
var G = {};
module.exports = G;
var DATA = G.DATA = 'DATA';
var F1 = G.F1 = function(val)
{
return val;
};
Таким образом, я могу экспортировать переменные в объекте G
, и в то же время, может получить доступ к переменной непосредственно писать DATA
без G.
префикса.
Пока все хорошо.
Теперь я хочу, чтобы запустить тест для app.js
в test.js
:
var G = require('./app.js');
console.log(G.DATA); // -> DATA
Это работает, но я также хочу, чтобы получить доступ к переменной непосредственно писать DATA
без G.
префикса как console.log(DATA); // -> DATA
Несомненно, я мог бы сделать как
var DATA = G.DATA;
для каждого экспорта переменных (свойства) & требуется модуль G
, но, очевидно, это утомительный процесс добавления каждой переменной в тестовый файл вручную для соответствия объектам G
.
Есть ли способ сделать это автоматически?
До сих пор, я pessmistic так
JS function
охватывает var
в собственной области, так что в теории нет никакого способа, чтобы иметь вспомогательную функцию, чтобы var
для каждого объекта имущества.
Спасибо.
PS. Я хотел бы избежать любого решения eval
или VM
. Я пробовал их в прошлом и слишком много проблем.
Это вообще плохая идея. – SLaks
Пожалуйста, объясните, почему вы хотите получить доступ к этим переменным напрямую, поэтому мы можем предложить лучший подход. –
Хорошо, мой проект в основном является интерпретатором поверх JS, например 'coffee-script', и я хочу иметь переменную' DATA' как 'DATA', а не' G.DATA' в процессе тестирования. Пока у меня есть тестовый код в том же файле 'app.js', но, если возможно, я хочу экспортировать переменные в Object (в данном случае' G') в отдельный файл - test.js'. –