Método Node.js vm.runInThisContext()

El método vm.runInThisContext() compila el código, lo ejecuta dentro del contexto del global actual y luego devuelve el resultado. Además, el código en ejecución no tiene acceso al ámbito local, pero tiene acceso al objeto global actual. Sintaxis:

vm.runInThisContext( code, options )

Parámetros: Este método acepta dos parámetros como se mencionó anteriormente y se describe a continuación:

  • código: Es el código JavaScript para compilar y ejecutar.
  • opciones: es un parámetro opcional y devuelve un objeto o una string y, si es una string, define el nombre del archivo que devuelve la string.

Valor devuelto: Devuelve el resultado de la última instrucción ejecutada en el script. Los siguientes ejemplos ilustran el uso del método vm.runInThisContext() en Node.js: Ejemplo 1: 

javascript

// Node.js program to demonstrate the    
// runInThisContext() method
  
// Including vm module
const vm = require('vm');
  
// Declaring local variable
let localVar = 'GfG';
  
// Calling runInThisContext method
const vmresult =
 vm.runInThisContext('localVar = "Geeks";');
  
// Prints output for vmresult
console.log(`vmresult: '${vmresult}',
              localVar: '${localVar}'`);
  
// Constructing eval
const evalresult = eval('localVar = "CS";');
  
// Prints output for evalresult
console.log(`evalresult: '${evalresult}',
                localVar: '${localVar}'`);

Salida: Por lo tanto, el método vm.runInThisContext() no tiene acceso al ámbito local, por lo tanto, localVar no cambia aquí.

vmresult: 'Geeks', 
                   localVar: 'GfG'
evalresult: 'CS', 
                localVar: 'GfG'

Ejemplo 2: 

javascript

// Node.js program to demonstrate the    
// runInThisContext() method
  
// Including vm module
const vm = require('vm');
  
// Declaring local variable and assigning
// it an integer
let localVar = 6;
  
// Calling runInThisContext method
const vmresult =
vm.runInThisContext('localVar = 9;');
  
// Prints output for vmresult
console.log(`vmresult: '${vmresult}',
             localVar: '${localVar}'`);
  
// Constructing eval
const evalresult = eval('localVar = 11;');
  
// Prints output for evalresult
console.log(`evalresult: '${evalresult}',
                localVar: '${localVar}'`);

Producción:

vmresult: '9', 
                  localVar: '6'
evalresult: '11',
                localVar: '6'

Referencia: https://nodejs.org/api/vm.html#vm_vm_runinthiscontext_code_options

Publicación traducida automáticamente

Artículo escrito por nidhi1352singh y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *