当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Node.js vm.createContext()用法及代码示例


vm.createContext()方法用于创建单个上下文,该上下文可用于运行多个脚本。此外,如果忽略了声明的contextObject,则返回一个新的空上下文对象。但是,如果声明了contextObject,则此方法将准备好该对象,以便可以在调用vm.runInContext()或script.runInContext()时使用它。其中contextObject将是此类脚本中的全局对象,这些脚本可以保留其活动属性。在脚本之外,它由vm模块运行,甚至全局变量也保持不变。

用法:

vm.createContext( contextObject, options )

参数:此方法接受两个参数,如avobe所述,如下所述:



  • contextObject:它是被上下文化的对象。
  • options:它是可选的,并返回Object。

返回值:它返回上下文对象。

以下示例说明了Node.js中createContext()方法的用法:

范例1:

// Node.js program to demonstrate the      
// vm.createContext([contextObject[, options]]) 
// method 
  
// Including util and vm module 
const util = require('util'); 
const vm = require('vm'); 
  
// Assigning value to the global variable 
global.globalVar = 10; 
  
// Defining Context object 
const object = { globalVar:4 }; 
  
// Contextifying stated object 
// using createContext method 
vm.createContext(object); 
  
// Compiling code 
vm.runInContext('globalVar /= 2;', object); 
  
// Displays the context 
console.log("Context:", object); 
  
// Dsiplays value of global variable 
console.log("Global Variable is ", global.globalVar);

输出:这里,上下文中的globalVar在输出中为2(4/2 = 2),但是globalVar的值仍为10。

Context: { globalVar:2 }
Global Variable is  10

范例2:

// Node.js program to demonstrate the      
// vm.createContext([contextObject[, options]]) 
// method 
  
// Including util and vm module 
const util = require('util'); 
const vm = require('vm'); 
  
// Assigning value to the global variable 
global.globalVar = 5; 
  
// Defining Context object 
const object = { globalVar:20 }; 
  
// Contextifying stated object 
// using createContext method 
vm.createContext(object); 
  
// Compiling code 
vm.runInContext('globalVar += 2;', object); 
  
// Displays the context 
console.log("Context:", object); 
  
// Dsiplays value of global variable 
console.log("Global Variable is ", global.globalVar);

输出:在这里,上下文中的globalVar在输出中为22(20 + 2 = 22),但globalVar的值仍为5。

Context: { globalVar:22 }
Global Variable is  5

参考: https://nodejs.org/api/vm.html#vm_vm_createcontext_contextobject_options




相关用法


注:本文由纯净天空筛选整理自nidhi1352singh大神的英文原创作品 Node.js | vm.createContext() Method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。