vm.runInContext()

vm.runInContext(code, contextifiedSandbox[, options])

vm.runInContext() compiles code, then runs it in contextifiedSandbox and returns the result. Running code does not have access to local scope. The contextifiedSandbox object must have been previously contextified via vm.createContext(); it will be used as the global object for code.

vm.runInContext() takes the same options as vm.runInThisContext().

Example: compile and execute different scripts in a single existing context.

1
2
3
4
5
6
7
8
9
10
11
12
const util = require('util');
const vm = require('vm');
 
const sandbox = { globalVar: 1 };
vm.createContext(sandbox);
 
for (var i = 0; i < 10; ++i) {
    vm.runInContext('globalVar *= 2;', sandbox);
}
console.log(util.inspect(sandbox));
 
// { globalVar: 1024 }

Note that running untrusted code is a tricky business requiring great care. vm.runInContext() is quite useful, but safely running untrusted code requires a separate process.

doc_Nodejs
2025-01-10 15:47:30
Comments
Leave a Comment

Please login to continue.