Método Node.js script.runInContext()

El método script.runInContext() se usa para ejecutar el código compilado que está presente dentro del objeto vm.Script dentro del contextifiedObject indicado y devuelve el resultado. Sin embargo, el código en ejecución no tiene acceso al ámbito local.

Sintaxis:

script.runInContext( contextifiedObject, options )

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

  • contextifiedObject: es un objeto contextualizado tal como lo devuelve el método vm.createContext().
  • options: Es un parámetro opcional y devuelve el objeto. Contiene los siguientes parámetros:
    1. displayErrors: mantiene un valor booleano, es decir, verdadero si se produce un error al compilar el código y la línea de código por la que se produce el error está vinculada al seguimiento de la pila. Su valor por defecto es verdadero.
    2. timeout: Contiene un valor entero que especifica el número de milisegundos necesarios para ejecutar el código indicado antes de finalizar la ejecución. Sin embargo, si se cierra una ejecución, se producirá un error. Y el valor de esto debe ser un número entero positivo absolutamente.
    3. breakOnSigint: contiene un valor booleano. Si es cierto, la ejecución se detendrá tan pronto como se proporcione SIGINT , es decir, (Ctrl+C), y si se detiene la ejecución, se generará un error. Su valor por defecto es false.

Valor devuelto: Devuelve el resultado de la última instrucción ejecutada en el script.

Los siguientes ejemplos ilustran el uso del método script.runInContext() en Node.js:

Ejemplo 1:

// Node.js program to demonstrate the     
// script.runInContext() method
  
// Including util and vm module
const util = require('util');
const vm = require('vm');
  
// Constructing context
const contextobj = {
  name: 'Nidhi',
  articles: 60
};
  
// Constructing script
const script = new vm.Script('articles *= 10;');
  
// Contextifying object
vm.createContext(contextobj);
  
// Calling runInContext method
script.runInContext(contextobj);
  
// Displays output
console.log(contextobj);

Producción:

{ name: 'Nidhi', articles: 600 }

Aquí, los artículos son 600 como (60*10 = 600).

Ejemplo 2:

// Node.js program to demonstrate the     
// script.runInContext() method
  
// Including util and vm module
const util = require('util');
const vm = require('vm');
  
// Constructing context
const contextobj = { globalVar: 6 };
  
// Constructing script
const script = new vm.Script('globalVar += 12;');
  
// Contextifying object
vm.createContext(contextobj);
  
// Calling for loop
for (let i = 1; i < 4; i++) {
  
// Calling runInContext method
script.runInContext(contextobj);
}
  
// Displays output
console.log("The output is: ", contextobj);

Producción:

The output is:  { globalVar: 42 }

Referencia: https://nodejs.org/api/vm.html#vm_script_runincontext_contextifiedobject_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 *