hugh 的个人博客

NodeJs实现运行用户输入的代码段

需要实现效果如下

 

 用户可以根据自己设定的规则和过滤条件, 执行响应的报警。

 

运用知识点:

node vm

1. new vm.Script(code, options)

将输入的code 进行预编译(但是不执行)

2.vm.createContext([sandbox[, options]])

依据sandbox对象,创建一个执行上下文

3.script.runInContext(contextifiedSandbox[, options])

在指定的上下文中执行编译好的js代码。被执行的代码无法获取本地作用域

 

code:

exeInSandbox: function(sandbox, script){
        const vm = require('vm');
        sandbox = sandbox || {};
        script = new vm.Script(script);
        const context = new vm.createContext(sandbox);
        script.runInContext(context, {
            timeout: 3000
        });
        return sandbox;
     }

 


标题:NodeJs实现运行用户输入的代码段
作者:hugh0524
地址:https://blog.uproject.cn/articles/2019/02/28/1551350125299.html

0 浏览