Опция sandbox
, которую вы передаете в конструктор vm2
, представляет «глобальный» объект внутри экземпляра песочницы.Вы также можете передавать функции:
const { VM } = require('vm2');
const sandbox = {
get_input(data) {
return 'input:' + data;
},
display(data) {
console.log('Data:', data);
}
}
const vm = new VM({ sandbox });
vm.run(`
const array = [ 'foo', 'bar', 'blah' ];
const ret = get_input(array[1]);
display(ret);
`);
(вывод: Data: input:bar
)