最近2018中文字幕在日韩欧美国产成人片_国产日韩精品一区二区在线_在线观看成年美女黄网色视频_国产精品一区三区五区_国产精彩刺激乱对白_看黄色黄大色黄片免费_人人超碰自拍cao_国产高清av在线_亚洲精品电影av_日韩美女尤物视频网站

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)Node.js教程:Node.js虛擬機
穩(wěn)定性: 3 - 穩(wěn)定

本節(jié)介紹了node.js的虛擬機(VM)模塊,該模塊提供了用于在V8虛擬機上下文中編譯和運行代碼的API。

創(chuàng)新互聯(lián)公司主營陵水黎族網(wǎng)站建設的網(wǎng)絡公司,主營網(wǎng)站建設方案,成都app軟件開發(fā)公司,陵水黎族h5微信小程序開發(fā)搭建,陵水黎族網(wǎng)站營銷推廣歡迎陵水黎族等地區(qū)企業(yè)咨詢

可以通過以下方法訪問該模塊:

var vm = require('vm');

JavaScript 可以立即編譯立即執(zhí)行,也可以編譯,保存,之后再運行。

vm.runInThisContext(code[, options])

vm.runInThisContext()對參數(shù)code編譯,運行并返回結(jié)果。運行的代碼沒有權限訪問本地作用域(local scope),但是可以訪問全局對象。

使用vm.runInThisContexteval方法運行同樣代碼的例子:

var localVar = 'initial value';

var vmResult = vm.runInThisContext('localVar = "vm";');
console.log('vmResult: ', vmResult);
console.log('localVar: ', localVar);

var evalResult = eval('localVar = "eval";');
console.log('evalResult: ', evalResult);
console.log('localVar: ', localVar);

// vmResult: 'vm', localVar: 'initial value'
// evalResult: 'eval', localVar: 'eval'

vm.runInThisContext沒有訪問本地作用域,所以沒有改變localVar。eval范圍了本地作用域,所以改變了localVar。

vm.runInThisContext用起來很像間接調(diào)用eval,比如(0,eval)('code')。但是,vm.runInThisContext也包含以下選項:

  • filename: 允許更改顯示在站追蹤(stack traces)的文件名。
  • displayErrors: 是否在stderr上打印錯誤,拋出異常的代碼行高亮顯示。會捕獲編譯時的語法錯誤,和執(zhí)行時拋出的錯誤。默認為true。
  • timeout: 中斷前代碼執(zhí)行的毫秒數(shù)。如果執(zhí)行終止,將會拋出錯誤。

vm.createContext([sandbox])

如果參數(shù)sandbox不為空,調(diào)用vm.runInContextscript.runInContext時可以調(diào)用沙箱的上下文。以此方式運行的腳本,sandbox是全局對象,它保留自己的屬性同時擁有標準全局對象(global object)擁有的內(nèi)置對象和函數(shù)。

如果參數(shù)sandbox對象為空,返回一個可用的新且空的上下文相關的沙盒對象。

這個函數(shù)對于創(chuàng)建一個可運行多腳本的沙盒非常有用。比如,在模擬瀏覽器的時候可以使用該函數(shù)創(chuàng)建一個用于表示window全局對象的沙箱,并將所有