модульvm
Модуль «Песочница», используемый для изоляции операционных сред с разными уровнями безопасности.
Установив изолирующую изолированную программную среду, вы можете ограничить ресурсы, к которым сценарии могут получить доступ при запуске, изолировать различные среды выполнения сценариев и настроить базовые модули для разных сред, чтобы обеспечить безопасность всей операционной среды.
В следующем примере создается песочница, которая ограничивает доступ только к глобальным базовым модулям.assertмодуль и добавьте два пользовательских модуля a и b:
1
2
3
4
5
6
7
8var vm = require('vm');
var sbox = new vm.SandBox({
a: 100,
b: 200,
assert: require('assert')
});
var mod_in_sbox = sbox.require('./path/to/mod');
объект
SandBox
СоздаватьSandBoxобъект, см.SandBox
1SandBox vm.SandBox;
Script
СоздаватьScriptобъект, см.Script
1Script vm.Script;
статическая функция
createContext
Создать объект контекста
1
2static Object vm.createContext(Object contextObject = {},
Object opts = {});
Параметры звонка:
- contextObject: Объект, указывает объект, который будет контекстуализирован.
- opts: Объект, определяет параметры контекста.
Результаты возврата:
- Object, возвращает объект контекста
isContext
Если даноobjectОбъект используетсяvm.createContext() для контекстуализации возвращает true
1static Boolean vm.isContext(Object contextObject);
Параметры звонка:
- contextObject: Объект, указывает объект, который необходимо проверить.
Результаты возврата:
- Boolean, если даноobjectОбъект используетсяvm.createContext() для контекстуализации возвращает true
runInContext
Запускает код, указанный code в данном contextualizedObject, и возвращает результат.
1
2
3static Value vm.runInContext(String code,
Object contextifiedObject,
Object opts = {});
Параметры звонка:
- code: строка, указывает код сценария, который необходимо скомпилировать и запустить.
- contextifiedObject: Объект, указывает объект контекста времени выполнения.
- opts: Объект, укажите параметры запуска
Результаты возврата:
- Value, вернуть текущий результат
Запускает код, указанный code в данном contextualizedObject, и возвращает результат.
1
2
3static Value vm.runInContext(String code,
Object contextifiedObject,
String filename);
Параметры звонка:
- code: строка, указывает код сценария, который необходимо скомпилировать и запустить.
- contextifiedObject: Объект, указывает объект контекста времени выполнения.
- filename: Строка, укажите имя файла скрипта.
Результаты возврата:
- Value, вернуть текущий результат
runInNewContext
Используйте данный contextObject для запуска кода, указанного code, в созданном контексте и возврата результата.
1
2
3static Value vm.runInNewContext(String code,
Object contextObject = {},
Object opts = {});
Параметры звонка:
- code: строка, указывает код сценария, который необходимо скомпилировать и запустить.
- contextObject: Объект, указывает объект, который будет контекстуализирован.
- opts: Объект, укажите параметры запуска
Результаты возврата:
- Value, вернуть текущий результат
Используйте данный contextObject для запуска кода, указанного code, в созданном контексте и возврата результата.
1
2
3static Value vm.runInNewContext(String code,
Object contextObject = {},
String filename);
Параметры звонка:
- code: строка, указывает код сценария, который необходимо скомпилировать и запустить.
- contextObject: Объект, указывает объект, который будет контекстуализирован.
- filename: Строка, укажите имя файла скрипта.
Результаты возврата:
- Value, вернуть текущий результат
runInThisContext
Запускает код, указанный в коде, в текущем контексте и возвращает результат.
1
2static Value vm.runInThisContext(String code,
Object opts = {});
Параметры звонка:
- code: строка, указывает код сценария, который необходимо скомпилировать и запустить.
- opts: Объект, укажите параметры запуска
Результаты возврата:
- Value, вернуть текущий результат
Запускает код, указанный в коде, в текущем контексте и возвращает результат.
1
2static Value vm.runInThisContext(String code,
String filename);
Параметры звонка:
- code: строка, указывает код сценария, который необходимо скомпилировать и запустить.
- filename: Строка, укажите имя файла скрипта.
Результаты возврата:
- Value, вернуть текущий результат