Constructor Node.js: nuevo método vm.Script()

El método Constructor: new vm.Script() crea un nuevo objeto vm.Script y compila el código indicado, pero no ejecuta el código. Además, el vm.Script compilado puede ejecutarse tantas veces como sea necesario. Aquí, el código no está conectado a ningún objeto global, sino que está conectado antes de cada ejecución, solo para esa ejecución en particular.

Sintaxis:

Constructor: new vm.Script( 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 a compilar.
  • options: Es un parámetro opcional y devuelve Object o string . Si devuelve una string, define el nombre del archivo.

Los siguientes ejemplos ilustran el uso de Constructor: new vm.Script() en Node.js:

Ejemplo 1:

// Node.js program to demonstrate the     
// Constructor: new vm.Script() method
  
// Including vm and util module
const util = require('util');
const vm = require('vm');
  
// Creating context
const context = {
  number: 2
};
  
// Calling the constructor
const script = new vm.Script('Type = "Int"; number *= 2;');
  
// Contextifying object
vm.createContext(context);
  
// Calling runInContext method
script.runInContext(context);
  
// Displays output
console.log(context);

Producción:

{ number: 4, Type: 'Int' }

Ejemplo 2:

// Node.js program to demonstrate the     
// Constructor: new vm.Script() method
  
// Including vm and util module
const util = require('util');
const vm = require('vm');
  
// Creating context
const context = {
  value: 1.0
};
  
// Calling the constructor
const script = new vm.Script('Type = "Float"; value += 2*0.1;');
  
// Contextifying object
vm.createContext(context);
  
// Calling runInContext method
script.runInContext(context);
  
// Displays output
console.log(context);

Producción:

{ value: 1.2, Type: 'Float' }

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