Описание тега nodevm

1 ответ

Nodejs vm2 - как импортировать скрипты

Предположим, у вас есть скрипт A: определяет библиотеку с: class MathFunctions { add(a, b) => { return a+b; } } И у вас есть скрипт B: как-то повторно использует MathFunctions: const mf = import MathFunctions; console.log(mf.add(2, 2)); И вы хоти…
07 май '18 в 22:18
0 ответов

Как использовать изолированную программную среду nodejs vm2 с механизмом наследования?

У меня есть сервер nodejs, получающий запрос. Данные, поступающие в этот сервис, являются объектом транзакции следующим образом. { "_id": "5c2f3e4c5f627d785086d0f7", "action_time": 1546600012970, "amount": -0.164, "asset": "SKK", "complete_time": 15…
12 фев '19 в 11:42
1 ответ

Node.js Песочница для запуска ненадежного пользовательского кода

Я пытаюсь найти изолированную программную среду node.js, способную запускать недоверенный пользовательский код. Есть несколько постов по этому поводу, но все они старые. Я надеюсь, что актуальный пост поможет.(2011) Как безопасно запускать пользоват…
01 сен '17 в 12:13
0 ответов

Как разрешить определенные глобальные модули в vm.Module со связанной функцией

У меня есть следующий vm.Module: import module1 from 'module1' import module2 from 'module2' const c = vm.createContext({test: 'a'}) const m = vm.Module(` import module1 from 'module1' console.log(module1) `, c) m.link((specifier, referencingModule)…
03 апр '18 в 09:11
1 ответ

Combine NodeJS Fibers + VM Sandbox

Я хочу запустить ненадежный код в Node, который может выглядеть следующим образом: for (var i = 0; i < 5; i++){ green_led(1); sleep(500); green_led(0); sleep(500); } Используя Волокна, я получил синхронное поведение, работающее как ожидалось: var…
09 дек '16 в 05:28
0 ответов

Узел VM и асинхронные функции

Рассмотрим следующий код узла, который вызывает асинхронную функцию с узлом vm: const vm = require('vm'); const ctx = new vm.createContext({ console: console, foo: function(){ return new Promise(r => {console.log(2); r()}) } }) console.log("START…
21 июн '18 в 15:46
1 ответ

Варианты использования NodeJS vm

Я запутался в случаях использования модуля VM в NodeJS. После прочтения чуть-чуть в документации об этом модуле это выглядит просто как причудливый способ сделать eval. Кто-нибудь использовал это и жил, чтобы сказать хвосту об этом случаи использова…
10 сен '18 в 10:36
2 ответа

Остановить цепочку обещаний или остановить возвращающую цепочку обещаний runInNewContext

Я столкнулся с проблемой с vm при выполнении кода с помощью runInNewContext, Пользовательский код может возвращать обещание, которое может быть вложенным и может иметь вложенные стеки вызовов. Код выглядит следующим образом function executeInSandbox…
02 янв '18 в 15:31
2 ответа

Как получить результат кода, который запускается Node vm2

Недавно я пытался реализовать выполнение песочницы, используя пакет vm2, который был опубликован @Patrik Šimek Я пытаюсь запустить некоторый код JS, который я считаю, что это пользовательская логика, я храню эту логику в строковой переменной. Мне ну…
29 авг '17 в 13:37
1 ответ

Ошибка ссылки при попытке вернуть строку Nodejs VM

Я использую модуль npm, называемый safe-eval, для оценки кода JavaScript, который я отправляю бэкэнду. Код обычно является функцией, которая будет выполняться внутри safe-eval с параметрами, которые я предоставлю. Проблема заключается в том, что при…
15 фев '19 в 16:37
2 ответа

Можно ли сделать все глобальные объекты Node.js доступными в контексте виртуальной машины Node?

Рассмотрим следующий код: vm = require('vm'); context = vm.createContext({}); vm.runInContext("Buffer.from('abc').toString()", context); Обратите внимание, что это производит ReferenceError: Buffer is not definedпоскольку Buffer - это специфическая …
26 ноя '19 в 13:44
0 ответов

Доступ к глобальным переменным в модуле виртуальной машины

Есть ли способ получить доступ к глобальным переменным в контексте vm? global.blah="hello"; const blah1 = "world"; // define sb argz = "`${blah}`" response = vm.runInContext(command, sb); В этом случае меня бросает ReferenceError: blah is not define…
14 мар '20 в 22:43
1 ответ

Как предоставить исходную карту в виртуальной машине Nodejs

Я оцениваю javascript связанный исходный код в nodejs используя приведенный ниже код const javascriptCode = "..." const javascriptSourceMap = "..." const wrapper = NativeModule.wrap(javascriptCode); const script = new vm.Script(w…
0 ответов

Невозможно объявить глобальный тип переменной для использования в файлах JS для оценки виртуальной машины.

У нас есть скрипты, которые оцениваются в вызове виртуальной машины JS на узле, который объявляет несколько контекстных глобальных переменных, как в коде ниже. Вопрос в том, во время разработки, когда разработчик работает над some-script.js, как мы …
21 янв '22 в 22:33
0 ответов

Использование VM2 с Webpack

У меня возникли проблемы с использованием веб-пакета с проектом машинописного текста, который использует vm2. webpack --config webpack.config.jsдает следующую ошибку: ОШИБКА в index.js от Terser Недопустимый параметр функции [webpack://./node_module…
09 мар '21 в 21:23
0 ответов

Как заставить оператор импорта правильно работать внутри кода, созданного с помощью модуля node:vm?

В нашем проекте у нас есть пользовательский объект, который используется в качестве регистратора. Итак, нам нужно заменить значение по умолчанию console. Для этого мы решили использовать модуль vm . Но мы сталкиваемся с проблемой при использовании и…
03 май '22 в 19:16
0 ответов

Как внедрить переменную в закрытие функции (Node.js VM)?

Предположим, у меня есть этот код: import vm from 'node:vm'; const code = ` const baz = "qux"; foo(() => { console.log(bar, baz) }) `; const context = { foo: (routine: Function) => { console.log(routine()); }, }; vm.createContext(context); vm.…
13 авг '22 в 21:45
0 ответов

Как сделать ссылку на SourceTextModule без его импорта?

Я обнаружил здесь , что импортированные модули принимаются как SyntheticModule()-s при связывании с SourceTextModule(), но мне удалось заставить его работать и как SourceTextModule()-s, как описано в документации: https: // nodejs.org/api/vm.html#cl…
16 сен '22 в 11:37